Какие варианты реляционного постоянного хранилища на стороне клиента являются хорошим выбором для нового проекта?

Учитывая, что WebSQL больше не разрабатывается, а IndexedDB еще не получила широкого распространения, какой выбор мы, разработчики, для реляционного хранилища на стороне клиента в будущем? Не лучше ли просто пока не использовать какие-либо из этих функций? В моем сценарии я изначально создаю плагин для браузера с поддержкой WebKit (Chrome и Safari), поэтому приемлемо использовать технологию, которой (пока) нет в Firefox и IE. Я понимаю, что мог бы использовать WebSQL в Chrome и Safari, но нет никакого способа узнать, как долго он будет поддерживаться в этих браузерах теперь, когда спецификация W3C не поддерживается.


person bloudermilk    schedule 09.03.2011    source источник


Ответы (3)


Сначала я подумал, что вы наверняка ошибаетесь - websql списан? Но да, я вижу, это исчезло.

Я думаю, что очевидным ответом будет поиск API, который абстрагирует базовый механизм хранения. Было бы замечательно, если бы было что-то, что позволило бы мне написать SQL с возможностью переключения на базу данных на стороне сервера, но с проблемами для websql камнем преткновения, похоже, является поддержка SQL.

persistence.js идет в некотором роде. WSPL, похоже, не делает больших успехов.

Создание уровня SQL для indexedDB выглядит огромной задачей, которая вряд ли будет выполнена в ближайшее время.

Похоже, многие другие люди пытаются решить подобные проблемы. например 1

person symcbean    schedule 10.03.2011

Если это будет расширение для Firefox, вы можете использовать интерфейс, очень похожий на WebSQL. Компонент SQLite останется в Firefox на долгое время, потому что он используется для многих других вещей, включая (я полагаю) реализацию IndexedDB, вам просто не разрешен доступ к нему с веб-страниц.

Вы правы в том, что невозможно узнать, как долго будет поддерживаться WebSQL в WebKit, но Apple ранее заявляла, что продолжит поддерживать ряд свойств CSS с префиксом -webkit- даже после того, как они реализуют стандартные версии (особенно если возможный стандарт отличается от их версии с префиксом), потому что они получили такое широкое распространение. Я думаю, что к WebSQL будут относиться аналогичным образом, и вы, по крайней мере, получите приличное количество предупреждений, если поддержка когда-либо будет прекращена.

В опере я не уверен.

IE никогда не будет включать SQLite, поэтому в нем никогда не будет WebSQL. Если вы все равно делаете плагин, вы всегда можете просто собрать SQLite как его часть аналогично тому, что Гирс сделал это.

person robertc    schedule 10.03.2011

Вы можете использовать переменную localStorage для хранения строки json, чтобы сохранить все ваши данные или разделить их между многими переменными, которые все еще находятся внутри localStorage. Подробнее об этом.

person tiagoboldt    schedule 10.03.2011
comment
localStorage определенно является жизнеспособным вариантом в качестве хранилища значений ключа. К сожалению, он не делает ничего, кроме этого - person bloudermilk; 11.03.2011
comment
ну, тогда переходите к IndexedDB, если вам нужно больше :) - person tiagoboldt; 11.03.2011