Я понимаю, что HTML5 "localStorage" представляет собой хранилище ключ:значение, но мне интересно, есть ли доступная библиотека Javascript, которая предлагает более SQL-подобный API?
Локальное хранилище HTML5 и SQL
Ответы (6)
Ознакомьтесь с разделом Будет ли HTML5 не содержать SQL? и DOM Storage: лекарство от обычных файлов cookie для некоторых ссылок и мнений.
В спецификации базы данных W3C говорится:
Пользовательские агенты должны реализовать диалект SQL, поддерживаемый Sqlite 3.6.19.
На данный момент по крайней мере Google Chrome поддерживает диалект SQL. Я сам проверил.
Вы должны использовать хранилище базы данных HTML5 (оно поддерживает SQL через транзакции). учебник здесь: http://www.html5rocks.com/tutorials/webdatabase/todo/< /а>
Хранилище локальной базы данных HTML5 по умолчанию поставляется с интерфейсом SQL, если я не ошибаюсь
Вот сообщение Webkit с некоторыми примерами: http://webkit.org/blog/126/webkit-does-html5-client-side-database-storage/
В настоящее время Chrome заставляет вас использовать Gears, который немного отличается, но все еще основан на SQL. Однако будущие версии Chrome будут следовать спецификации HTML5.
Вы можете попробовать Alasql. Он поддерживает стандартный язык SQL и хранит данные в памяти или локальном хранилище. Есть несколько способов использования 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');
Поэкспериментируйте с этим образцом в jsFiddle. Запустите этот образец два-три раза (или перезагрузите страницу), и вы увидите, как количество строк в таблице будет расти.