2015-09-13 3 views
1

Это мой первый опыт работы с JSON, и я до сих пор довольно новичок в Javascript. Я работаю над приложением, и мне нужно будет работать с несколькими наборами данных. Поскольку имеется около 300 записей с 6 свойствами, я планирую хранить их в формате JSON. В приложении мне нужно будет получить данные и выполнить с ними несколько расчетов.Где хранить данные JSON

У меня возникли проблемы с выбором хранения данных. Я знаю, что, как правило, плохой практикой хранить вещи как глобальные переменные, даже если это удобно и легко работать. Из-за этого я рассматривал возможность хранения данных в отдельном файле и загрузки его с помощью jQuery. Этот метод делает гораздо более утомительным работу с данными, но он имеет преимущество, заключающееся в том, что очень легко обновлять записи, когда они устаревают. Я также не уверен, насколько этот метод повлияет на время загрузки.

Я не уверен, какой вариант является предпочтительным или если есть лучшие варианты. Как бы вы это сделали?

+0

Не уверен, что вы просите. Если у вас есть JSON в отдельном файле, вы можете загружать его только через запрос сервера (например, AJAX в jQuery).Глобальные переменные здесь не играют никакой роли. Если у вас есть что-то вроде 'var myJSON =' в верхней части вашего JSON-файла, это больше не файл JSON, по крайней мере, не действительный ... большую часть времени JSON загружается через AJAX, хотя [некоторые сайты добавляют 'while (1); 'или что-то подобное ему по соображениям безопасности] (http://stackoverflow.com/questions/2669690). – Xufox

ответ

2

Похоже, вам нужно Доступ и изменить данные в вашем JSON. для того, чтобы сделать это, вам нужно будет разработать логику в JavaScript, которая поможет десериализовать/сериализовать, чтобы управлять вашими объектами.

Что касается местоположения, вы можете сохранить его в локальном файле, вы можете использовать таблицу базы данных, если у вас есть доступ к ней, и создайте таблицу со столбцом «JSON».

У вас есть много возможностей, которые вам нужно просто указать, как вы хотите его использовать.

1

Помимо местоположения ваших данных вы можете избежать использования глобальных объектов, если вы поместите весь свой код внутри модуля, посмотрите на amd or asynchronoud module definition, это отличный механизм.

Nos, если мы вернемся к части данных, лучший способ - сохранить ваши данные в json-файле и написать функцию внутри вашего модуля, которая может обрабатывать данные загрузки и даже редактировать ее.

2

Лично я бы поместил данные в файл .json и загрузил его с помощью ajax.

Это не значит, что данные утомительны для работы вообще. Это STILL json и преобразуется в Javascript Object.

Пример:

http://jsfiddle.net/mon3419m/

$.get('https://www.reddit.com/.json').done(function(data){ 
    data.data.children.forEach(makeLi); 
}); 

и в качестве глобальной проблемы ..

просто поставить свой код так:

(function(){ 

    //all your code. 

})(); 

Глобальный кодекс является проблемой, когда ваш приложение большое, или у вас есть сценарии, запущенные из других источников alo ваш. Что может непреднамеренно что-то делать с вашими переменными. Но используя эту функцию self-invoke, вы можете предотвратить все это. Потому что функция в js создает новую область. Помещение (function(){})(); походит на функцию вызова и говорит ему выполнить сразу.

, чтобы лучше понять, посмотрите на это ..

funcName(); //invokes funcName 
(funcName)(); //invokes funcName 
(function funcName() {})(); //invokes funcName 
(function(){})(); //invokes the nameless function 
Смежные вопросы