2010-10-25 9 views
8

- Divulgation complète - ce sont les devoirs, et c'est mon projet de capstone. J'ai écrit ma première grande application de cartographie Javascript orientée sur les objectifs (diagrammes à barres, diagrammes de Gantt, etc.) et je voudrais donner aux utilisateurs la possibilité de personnaliser la sortie - des choses comme la taille de la police, la cartographie des couleursOù dois-je stocker les paramètres de mon programme javascript?

À l'heure actuelle, je transmets un fichier de configuration contenant des variables globales A) codées en dur ou B) tirant des paramètres de l'URL. (Pour être clair, je pense c'est un fichier "config" - c'est juste un fichier * .js avec un tas de globals dans).

Ma question est la suivante: existe-t-il une meilleure technique pour ce faire que de charger un fichier de configuration dans l'espace global? Quelle est la «meilleure pratique» pour ce type de chose? Dois-je avoir un objet "settings"? Ou stocker les paramètres dans un fichier XML?

Répondre

8

Y a-t-il une meilleure technique pour ce faire que de charger un fichier de configuration dans l'espace global?
Habituellement, vous définissez votre propre espace de noms personnalisé, afin que vos données n'interfèrent pas avec les données définies par d'autres scripts. Quelque chose comme

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

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

Selon le commentaire de Nikita, il peut être préférable de stocker les paramètres sous un espace de noms de projet.

Il est également possible de stocker la configuration sous la forme JSON, puis de la charger de manière synchrone ou asynchrone, selon vos préférences. Cela vous permet de maintenir la logique de votre programme ailleurs sans avoir à avoir un fichier de configuration qui dépend de l'existence d'une certaine variable à laquelle il doit affecter un objet (par exemple, myProj.settings=...). Donc, pour des raisons de maintenabilité, les paramètres JSON programmatiques-agnostiques peuvent être meilleurs ...

Cette idée peut être exagérée! Juste pensé que ça vaut la peine d'y mettre la main!

Questions connexes