Кто-нибудь использует файлы конфигурации для JavaScript? - PullRequest
42 голосов
/ 05 мая 2010

У нас есть файлы javascript, которые зависят от конкретной среды, и поэтому я подумывал о том, чтобы пойти по пути создания общего способа чтения в файле XML (config) для хранения различных настроек, специфичных для среды.Мне было любопытно узнать, делает ли это кто-нибудь еще здесь (или, если нет, есть ли причина, по которой вы этого не делаете)?

Ответы [ 6 ]

30 голосов
/ 05 мая 2010

Все, что вам нужно сделать, это загрузить файл javascript с некоторыми определениями переменных, в идеале с пространством имен. Для этого вы можете использовать один литерал объекта:

var config = {
  option1: 'good;', 
  option2: {name: 'bad'}, 
  option3: ['u','g','l','y']
}

Затем загрузите этот файл в качестве первого сценария, и у вас будет доступ к информации конфигурации в каждом последующем сценарии, например,

if (config.option1 == 'good') doStuff();
26 голосов
/ 05 мая 2010

JSON в сотни раз быстрее потребляет, чем XML, сам по себе нативный объект JavaScript. Присоединить и забыть.

EDIT:

Примером Джеймса Вестгейта является JSON. Вы можете использовать этот встроенный или как внешний файл или даже загруженный через AJAX.

Вот еще один пример:

var clientData = {}
clientData.dataset1 = [
    {name:'Dave', age:'41', userid:2345},
    {name:'Vera', age:'32', userid:9856}
]

alert(clientData.dataset1[0].name)
9 голосов
/ 05 мая 2010

Почему бы не использовать отдельный файл js для хранения настроек, специфичных для вашей среды?

Точно так же, как вы можете использовать несколько CSS-файлов для стилизации своей страницы, вы также можете использовать несколько файлов js.

Таким образом, вы можете создать файл app-config.js с конкретными настройками:

var SiteName = "MyWebsite.com";
var HeaderImage = "http://mycdn.com/images/mywebsite/header.png";

И затем вы включаете js на своих страницах так:

<script type="text/javascript" src="/js/app-config.js"></script>
<script type="text/javascript" src="/js/app.js"></script>
5 голосов
/ 05 мая 2010

Одна вещь, которую вы могли бы рассмотреть, - это чтобы сами страницы включали в себя небольшие блоки Javascript для предоставления только такой информации о конфигурации. Зачастую для создания URL-адреса требуется лишь небольшое количество информации и т. Д. Я приведу пример JSP:

<script>
  var appConfig = {
    'syndicate': '${environ.syndicate}',
    'urlBase': '${environ.urlBase}'
  };
</script>

Тогда ваш «чистый» код Javascript может обратиться к window.appConfig, чтобы получить критическую информацию. Очевидно, это будет беспорядок, если вам понадобится много всего.

Это особенно легко, когда ваши страницы создаются с помощью какой-либо системы шаблонов в вашей серверной среде. Таким образом, вам нужно всего лишь установить тег script в одном месте (или в небольшом количестве мест; шаблоны в других словах), и все страницы получат его автоматически.

( отредактировано для устранения странного объявления переменных )

0 голосов
/ 14 апреля 2015

Я бы рекомендовал использовать YCB. Вот пример того, как его использовать: https://github.com/yahoo/ycb/blob/master/examples/simple/app.js

0 голосов
/ 05 мая 2010

Вы можете легко извлекать файлы XML, используя что-то вроде jquery (http://think2loud.com/reading-xml-with-jquery/).

Тем не менее, я хотел бы задать вопрос, является ли JavaScript-код на стороне клиента действительно хорошей идеей. Похоже, что любая специфическая среда (например, qa, uat, production, я предполагаю) должна обрабатываться на сервере, а клиент должен быть независим от среды

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...