У нас есть файлы JavaScript, которые являются конкретной средой, и таким образом, я думал о потере работоспособности по пути о создании универсального способа считать в XML (конфигурация) файл для хранения другой среды определенные настройки. Мне было любопытно знать, делает ли кто-либо еще на здесь это (или в противном случае есть ли причина, почему Вы не делаете)?
JSON в сотни раз быстрее потребляется, чем XML, поэтому можно использовать собственный объект JavaScript. Прикрепи и забудь.
РЕДАКТИРОВАТЬ:
Пример Джеймса Вестгейта - JSON. Вы можете использовать этот встроенный или как внешний файл или даже загружать через AJAX.
Вот еще один пример:
var clientData = {}
clientData.dataset1 = [
{name:'Dave', age:'41', userid:2345},
{name:'Vera', age:'32', userid:9856}
]
alert(clientData.dataset1[0].name)
Вы можете легко извлечь XML файлы, используя что-то вроде jquery (http://think2loud.com/reading-xml-with-jquery/).
Однако я хотел бы задать вопрос, действительно ли код javascript на стороне клиента, специфичный для среды, является хорошей идеей. Кажется, что любая специфическая среда (т.е. qa, uat, production, я полагаю) должна обрабатываться на сервере, а клиент должен быть независим от среды
.Почему бы не использовать отдельный 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>
Все, что вам нужно сделать, это загрузить файл javascript с некоторыми определениями переменных, в идеале с разграничением имен. Для этого можно использовать один объектный литерал:
var config = {
option1: 'good;',
option2: {name: 'bad'},
option3: ['u','g','l','y']
}
Затем загрузите этот файл в качестве первого скрипта, и у вас будет доступ к информации о конфигурации в каждом последующем скрипте, например
if (config.option1 == 'good') doStuff();
Вы можете подумать о том, чтобы сами страницы включали в себя небольшие блоки Javascript для предоставления именно такой информации о конфигурации. Часто вам действительно нужен лишь небольшой объем информации для построения URL и т. Д. Я приведу пример JSP:
<script>
var appConfig = {
'syndicate': '${environ.syndicate}',
'urlBase': '${environ.urlBase}'
};
</script>
Тогда ваш «чистый» код Javascript может обратиться к window.appConfig
для получения важной информации . Очевидно, это будет беспорядок, если вам понадобится много всего.
Это особенно просто, когда ваши страницы создаются с помощью какой-либо системы шаблонов в серверной среде. Таким образом, вам нужно только установить тег скрипта в одном месте (или в небольшом количестве мест; другими словами, шаблоны), и все страницы получат его автоматически.
( отредактировано, чтобы исключить странное объявление переменных )