2010-10-25 15 views
8

- Vollständige Offenlegung - das sind Hausaufgaben, und dies ist mein Capstone-Projekt. -Wo sollte ich Einstellungen für mein Javascript-Programm speichern?

Ich habe meine erste große Obj-Oriented Javascript Charting-Anwendung (Balkendiagramme, Gantt-Diagramme, etc.) geschrieben und ich möchte den Benutzern die Möglichkeit geben, Ausgabe - Dinge wie Schriftgröße, Diagrammfarben anzupassen usw.

Im Moment übergebe ich eine Konfigurationsdatei, die globale Variablen enthält, die entweder A) fest codiert sind oder B) Parameter aus der URL ziehen. (Um klar zu sein, ich denke, ist es eine "Config" -Datei - es ist nur eine * .js-Datei mit einer Reihe von globalen in).

Meine Frage ist das - gibt es eine bessere Technik dafür als das Laden einer Konfigurationsdatei in den globalen Raum? Was ist die "beste Praxis" für diese Art von Sache? Sollte ich ein Objekt "Einstellungen" haben? Oder speichern Sie die Einstellungen in einer XML-Datei?

Antwort

8

Gibt es eine bessere Technik dafür als eine Konfigurationsdatei in den globalen Raum zu laden?
Normalerweise definieren Sie Ihren eigenen benutzerdefinierten Namespace, sodass Ihre Daten nicht mit Daten in Konflikt geraten, die von anderen Skripten definiert werden. So etwas wie

if (!window.my_project) { 
    window.my_project = {}; 

    my_project.SOME_CONFIGURATION_VALUE = 1; 
    my_project.some_function = function(){}; 
    ... 
} 
2

Laut Nikitas Kommentar kann es am besten sein, die Einstellungen unter einem Projektnamespace zu speichern.

Es kann auch sinnvoll sein, die Konfiguration als JSON zu speichern und dann entweder synchron oder asynchron zu laden - je nach Vorliebe. Dies ermöglicht es Ihnen, Ihre Programmlogik woanders zu halten, ohne eine Konfigurationsdatei zu haben, die davon abhängt, dass es eine bestimmte Variable gibt, der sie ein Objekt zuweisen muss (d. H. myProj.settings=...). Aus Gründen der Wartungsfreundlichkeit können also Programmlogik-agnostische JSON-Einstellungen am besten sein.

Diese Idee ist vielleicht zuviel! Ich dachte nur, es lohnt sich, da draußen zu stehen!

Verwandte Themen