2009-12-10 2 views
9

Я понимаю, что HTML5 «LocalStorage» является ключ: значение магазина, но мне интересно, если есть библиотека Javascript доступна, который предлагает более SQL-иш API?HTML5 LocalStorage & SQL

+0

[Это сообщение] [1] может быть вам полезна. [1]: http://stackoverflow.com/questions/14260127/is-there-a-free-lib-accessing-to-html5-database-sqlite –

ответ

7

Отъезд Will HTML5 be SQL-free? и DOM Storage: a Cure for the Common Cookie для некоторых ссылок и мнений.

+0

Хорошее чтение в этих ссылках, спасибо! Я также собираюсь добавить статью, связанную с одним из тех, которые дали хорошую перспективу использования SQL для хранилища браузера> http://blog.vlad1.com/2009/04/06/html5-web- storage-and-sql – JeroenEijkhof

1

локальное хранилище HTML5 базы данных поставляется с интерфейсом SQL по умолчанию, если я не ошибаюсь

Вот Webkit сообщение с некоторыми примерами: http://webkit.org/blog/126/webkit-does-html5-client-side-database-storage/

В настоящее время силы Chrome использовать Gears, который немного отличается, но все же основано на SQL. Однако будущие версии Chrome будут следовать спецификации HTML5.

+0

См 4.11. Клиентское хранилище базы данных - http://www.whatwg.org/specs/web-apps/2007-10-26/#sql –

+0

кажется скорее «экспериментальным» ... – jldupont

4

W3C Database specification говорит: агенты

Пользователь должен реализовать SQL dialect поддерживаемую Sqlite 3.6.19.

В настоящее время не менее Google Chrome поддерживает диалект SQL. У меня есть checked.

+0

Я использую 5.0.342.1 dev версию Chrome. –

+1

В течение ноября 2010 года документ теперь гласит: «Этот документ был включен в трек Рекомендаций W3C, но работа по спецификации прекратилась». Документ IndexedDB теперь заменяет его - http://www.w3.org/TR/IndexedDB/ –

3

Вы должны использовать хранилище базы данных HTML5 (оно поддерживает SQL через транзакции). учебник здесь: http://www.html5rocks.com/tutorials/webdatabase/todo/

+0

Время и прилив продолжают стирать HTML5. Похоже, что WebDatabase отсутствует, а indexDB.Вот обновленная статья того же автора: http://www.html5rocks.com/en/tutorials/indexeddb/todo/ – EBarr

1

Вы можете попробовать Alasql. Он поддерживает стандартный язык SQL и сохраняет данные в памяти или localStorage. Есть sevelar способы, как использовать Alasql с localStorage. Ниже вы можете увидеть, как создать базу данных localStorage с именем «Atlas», прикрепить ее к Alasql как «MyAtlas», тогда вы можете работать с таблицами, как и любая другая база данных. По умолчанию Alasql использует режим AUTOCOMMIT ON, поэтому он сохраняет данные в localStorage после каждого оператора SQL.

Это пример:

alasql('CREATE localStorage DATABASE IF NOT EXISTS Atlas'); 
alasql('ATTACH localStorage DATABASE Atlas AS MyAtlas'); 
alasql('CREATE TABLE IF NOT EXISTS MyAtlas.City (city string, population number)'); 
alasql('SELECT * INTO MyAtlas.City FROM ?',[[{city:'Vienna', population:1731000}, 
    {city:'Budapest', population:1728000}]]); 
var res = alasql('SELECT * FROM MyAtlas.City'); 

Play с помощью этого образца в jsFiddle. Запустите этот образец два или три раза (или перезагрузите страницу), и вы увидите, как количество строк будет расти в таблице.