Все ли системы хранения HTML5 работают вместе? - PullRequest
4 голосов
/ 17 апреля 2010

Хотя в html5 есть много хороших вещей, одну вещь, которую я не получаю, - это механизм хранения с резервированием, во-первых, это localstorage и sessionstorage, которые являются хранилищами ключевых значений, один для одного экземпляра приложения (" одна вкладка "), а другая работает для всех экземпляров этого приложения, чтобы они могли обмениваться данными. Оба сохраняются, когда вы закрываете браузер, и имеют ограниченный размер (обычно 5 МБ), это здорово, и все было бы хорошо, если бы мы остановились на этом.

Но есть и «База данных Web SQL», которая имеет ту же систему безопасности, что и хранилище localals, то же ограничение размера, все то же самое, за исключением того, что она работает как / is sqlite, с таблицами и синтаксисом sql и всем этим.

И облом в том, что они вообще не работают с одними и теми же данными! Это не два способа доступа к вашим данным, это действительно два хранилища для каждого приложения html 5 (не создано по умолчанию да, но все же вы понимаете мою точку зрения).

Я хотел бы знать, есть ли причина, по которой оба этих механизма существуют одновременно? Или они просто смотрели на движение sql и nosql, чтобы выбрать лучшее, а затем пошли: "Винт, давайте добавим оба!" ? Почему бы не реализовать локальное / сессионное хранилище в виде таблицы внутри web sql db?

Ответы [ 2 ]

5 голосов
/ 17 апреля 2010

Я считаю, что localalstorage - это правильное переписывание того, как файлы cookie должны были создаваться в первую очередь. Он имеет очень простой API и низкий барьер для принятия.

Web SQL довольно трудоемкий и будет серьезной проблемой для сохранения простого значения, поэтому у них очень разные варианты использования. localstorage фактически реализован в WebKit с использованием SQLite, но не доступен через WebSQL.

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

Смотрите также: http://www.pubbs.net/200904/webkit/28373-webkit-dev-need-help-making-windowlocalstorage-span-processes.html

0 голосов
/ 20 апреля 2010

Я задал себе тот же вопрос, и вот ответ, процитированный из вики Chromium:

В: Почему это по сравнению с LocalStorage?

A: LocalStorage по своей природе является racy или параллельным бедствием , в зависимости от того, готовы ли вы реализовать «мьютекс хранения», описанный в спецификации.Хром решил не реализовывать это.Сам по себе WebKit - это один поток / процесс (т.е. без периода параллелизма)

Источник: http://www.chromium.org/developers/design-documents/indexeddb

Веб-SQL может быть полезен, если вы хотите скопировать структуру вашей базы данных локально дляавтономное использование.

Но Web Firefox не будет реализован в Firefox: http://us1.campaign -archive.com /? u = 168bf22f976f5a68fe5770d19 & id = 6c2d73c957 # стандартов

Mozilla, Microsoftи Oracle работают над альтернативой «IndexedDB»: http://www.w3.org/TR/IndexedDB/

Незавершенная работа в Firefox: https://wiki.mozilla.org/Firefox/Projects/IndexedDB

Демоверсии хранилища:

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