Мне нужно создать автономное веб-приложение HTML5 для устройства iPad / планшета, где пользователь может загрузить набор данных (таблицу данных) с сервера и сохранить его на устройстве.Затем пользователь может отключиться от сервера и просматривать / редактировать данные локально на устройстве.Это для людей, которые работают в отдаленных районах, где нет сотовой связи и им нужно собирать / обновлять данные.Когда они возвращаются в офис, они могут синхронизировать / загружать данные обратно на сервер.Причина, по которой он должен быть HTML5, заключается в том, что он не зависит от платформы, то есть может запускать его на iOS, Android и т. Д., Если у него есть современный веб-браузер, поддерживающий HTML5.
Теперь я уже построил систему, используяЛокальное хранилище HTML5 (для данных) и кэш автономного приложения HTML5 (для страниц / css / js / images), и оно работает достаточно хорошо с небольшими наборами данных (я могу просматривать, редактировать и сохранять в автономном режиме и загружать / синхронизировать в режиме онлайн),Теперь мне нужно масштабировать до 10000 строк данных.Он работает, но довольно медленно и зависает браузер на 10 сек при загрузке на четырехъядерный процессор Intel с 8 ГБ памяти.
Так что я исследовал несколько лучших альтернатив, чем локальное хранилище:
1)WebSQL: мог бы запрашивать данные с использованием языка SQL и выполнять объединения и т. Д. Проблема в том, что он устарел и больше не поддерживается, поэтому я не хочу тратить время на создание чего-либо для него.
2) IndexedDB: использует хранилище объектов (которое технически я уже храню объекты с использованием локального API хранения и хранения с использованием JSON).Потенциально быстрее, так как он использует индексы с SQL Lite Backend.Существует много стандартного кода для выполнения простых задач, таких как создание базы данных, добавление в нее, чтение из нее, итерация по ней.Я просто хочу сделать простой запрос типа select(xyc, abc).where(abc = 123).limit(20)
, но вместо этого мне нужно написать много кода JavaScript для этого.Как написать свой собственный код для объединения таблиц, каких-нибудь примеров?
Я нашел один плагин jQuery , который может упростить жизнь.Есть ли какие-либо другие библиотеки или другие библиотеки, которые облегчают боль при использовании IndexedDB?
Большое спасибо!