Функции оболочки для IndexedDB

Мне нужно создать автономное веб-приложение HTML5 для iPad / планшета, где пользователь может загрузить набор данных (таблицу данных) с сервера и сохранить его на устройстве. Затем пользователь может отключиться от сервера и просматривать / редактировать данные локально на устройстве. Это для людей, которые работают в удаленных районах, где нет сотовой связи и которым необходимо собирать / обновлять данные. Когда они вернутся в офис, они могут синхронизировать / загрузить данные обратно на сервер. Причина, по которой он должен быть HTML5, заключается в том, что он не зависит от платформы, то есть может запускать его на iOS, Android и т. Д., Если он имеет современный веб-браузер, поддерживающий HTML5.

Я уже построил систему, используя локальное хранилище HTML5 (для данных) и кеш офлайн-приложений HTML5 (для страниц / css / js / images), и она достаточно хорошо работает с небольшими наборами данных (я могу просматривать, редактировать и сохранять в автономном режиме и загружать / синхронизировать в режиме онлайн). Теперь мне нужно масштабировать до 10 000 строк данных. Он работает, но довольно медленно и зависает на 10 секунд при загрузке на четырехъядерном компьютере Intel 8 ГБ.

Итак, я исследовал несколько лучших альтернатив, чем локальное хранилище:

1) WebSQL: смог бы запрашивать данные с помощью языка SQL и выполнять соединения и т. Д. Проблема в том, что теперь он устарел и не будет поддерживаться больше, поэтому я не хочу тратить время на создание чего-то для этого.

2) IndexedDB: использует хранилище объектов (технически я уже храню объекты с помощью API локального хранилища и сохраняю с помощью JSON). Потенциально быстрее, поскольку он использует индексы с серверной частью SQL lite. Существует много шаблонного кода для выполнения простых задач, таких как создание базы данных, добавление в нее, чтение из нее, итерация по ней. Я просто хочу выполнить простой запрос вроде select (xyc, abc) .where (abc = 123) .limit (20) , но вместо этого мне придется написать много кода JavaScript для этого. Как написать собственный код для объединения таблиц, любых примеров в любом месте?

Я нашел один плагин jQuery , который может упростить жизнь. Есть ли какие-нибудь другие библиотеки или библиотеки, которые облегчат боль от использования IndexedDB?

Большое спасибо!

9
задан zuallauz 3 October 2011 в 03:49
поделиться