один большой или несколько маленьких объектов в локальном хранилище html5 - PullRequest
3 голосов
/ 05 марта 2012

лучше ли хранить один большой объект JSON в локальном хранилище и добавлять в него другие данные или использовать несколько небольших объектов с данными в нем? Я хотел бы использовать его в качестве хранилища истории для любого приложения (так что я думаю, что 5 МБ достаточно). Спасибо

Ответы [ 3 ]

2 голосов
/ 06 марта 2012

Это действительно зависит от того, как вы хотите получить доступ к своим данным: если вы хотите время от времени получать доступ к небольшим частям ваших данных, вы должны поместить их в небольшие объекты.Недавно я провел пару тестов производительности и обнаружил, что поиск объектов в localStorage, заполненном множеством объектов, быстро завершается.Если вы используете маленькие объекты, вы можете использовать меньше памяти, потому что вам не нужно читать и анализировать большой объект json.С другой стороны, имейте в виду, что чтение localStorage является блокирующей функцией.Так что если вам нужно перебрать объект, я могу заблокировать весь ваш браузер.В этом случае, возможно, было бы лучше сохранить данные в виде большого куска и сразу прочитать их.

0 голосов
/ 06 марта 2012

Обычно я использую его с более мелкими объектами, и для этого я использую библиотеку CarboStorage , которая является оболочкой для localStorage.

0 голосов
/ 05 марта 2012

Конечно, проще вызывать одну функцию и один элемент, например,

localStorage.setItem('JSON', '{"whole":[{"lotta":"json"}],"data":"here"}');

Вы также можете использовать localStorage как обычный объект, например, так:

localStorage['JSON'] = '{"whole":[{"lotta":"json"}],"data":"here"}';

, но либото, как вам придется анализировать JSON и запускать функции для него и т. д.

Это действительно зависит от того, сколько истории вы хотите сохранить, и как вы хотите сохранить ее.

Также localStorage сохраняется между посещениями, если вам нужно только сохранить историю во время текущего посещения, вы можете использовать sessionStorage точно так же.

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