Параметры автономного хранения данных HTML5

Мой приятель-разработчик недавно начал работать в новой компании, и одна из его задач - разработать новое веб-приложение, которое позволит их пользователям работать в автономном режиме, когда их сотрудники находятся на месте в удаленных местах, а затем для синхронизации со стороной сервера. база данных, для которой они еще не определили поставщика на стороне сервера (я предполагаю, что это будет SQL Server).

Я немного огляделся, и кажется, что два жизнеспособных варианта - это LocalStorage и IndexedDb, причем LocalStorage является более популярной технологией? Они хотят перейти на HTML5, и все в порядке, но, короче говоря, мой вопрос (вопросы):

  • Каковы их варианты автономного хранения данных в HTML5?
  • Are there older solutions that have better support?
    • are those methods less risky?
    • меньше времени на реализацию?

Идея автономного хранения данных в веб-приложении не кажется новой, но при использовании новейших современных технологий (html5, asp.net 4.0 / 4.5) вы начинаете выходить на малоизученную территорию.

  • Что может быть в вашей компании, что работает, а что не работает?

Любые разумные ответы, основанные на доказательствах, скорее всего, получат мою поддержку, так что не торопитесь получить первый ответ и не пытайтесь набрать несколько быстрых очков, я ищу здесь хорошие надежные отзывы. Спасибо.


person Dylan Hayes    schedule 17.11.2011    source источник


Ответы (2)


В HTML5 есть несколько возможностей автономного хранения: Web Storage Web SQL Database IndexedDB Filesystem API

У вас есть очень хорошее представление обо всех этих вариантах здесь:

http://www.html5rocks.com/en/tutorials/offline/whats-offline/#toc-older-storage

По сравнению со старыми вариантами (файлы cookie, хранилище на основе плагинов, особенности браузера) я процитирую статью:

«Новые API-интерфейсы хранилища, которые мы можем назвать« хранилищем HTML5 », обычно лучше с точки зрения открытости и соответствия стандартам. Конечно, не все браузеры включают в себя все новые API-интерфейсы, и вам, возможно, придется поддерживать старые браузеры, которые этого не делают. не включать ни одного из них вообще. Так что старые методы все еще полезны для постепенной деградации ".

Другие полезные ссылки:

http://php-html.net/tutorials/html5-local-storage-guide/

http://www.tutorialspoint.com/html5/html5_web_sql.htm

Надеюсь это поможет...

person user998692    schedule 17.11.2011

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

IndexedDB был перестроен (на мой взгляд) и не получил широкой поддержки (пока) из-за того, что Mozilla настаивает на том, чтобы это лучше, чем нарезанный хлеб, а будущее WebSQL выглядит несколько неопределенным, поскольку Mozilla отказывается реализовать его, и это больше не работает из-за тупика между W3C и поставщиками браузеров, которые его реализовали ( Chrome / Safari / Opera).

В настоящее время наблюдается некоторый взрывной рост браузеров благодаря внедрению смартфонов, поэтому сложно определить, какая часть рынка поддерживает функции HTML5 LocalStorage, но с использованием statcounter Я смог вычислить это между Chrome (4+), Firefox (3. +), Safari (4+), Opera (10.5+) ) и IE (8+), включая устройства iPhone и Android, вы захватите около 80-85% рынка, причем эта цифра будет расти со скоростью 1-2% в месяц. Остальные - это IE 6/7 (который упорно имеет тенденцию зависать), старые версии новых браузеров (с функциями обновления, которые обычно поддерживают их актуальность) и некоторые мобильные браузеры, застрявшие в каменном веке.

Что касается более старых вариантов, я бы добавил Сохранение пользовательских данных для IE6 / 7 в список, предоставленный @ user998692, но в любом случае вы столкнетесь с множеством проблем несовместимости с браузерами и поддержкой множества технологий, что усложнит вашу кодовую базу и тестирование и увеличит ваши сроки доставки (и стоимость) соответственно. Однако, если вы действительно хотите пойти по этому пути, я бы порекомендовал вам взглянуть на PersistJS как ребята, которые его собрали, уже проделали большую часть работы, которая вам может понадобиться.

В наши дни стоит больше смотреть вперед (на то, как рынок будет выглядеть через 1-2 года, когда ваше приложение будет распространяться и набирать широкую базу пользователей), чем в обратном направлении, поэтому я бы сказал, что HTML5 LocalStorage, вероятно, ваш лучший вариант.

person Steven de Salas    schedule 18.11.2011
comment
Отличный пост, и я определенно согласен с вашим последним абзацем! - person Dylan Hayes; 18.11.2011
comment
Мне нравится, что вы сказали, что IndexedDB был перестроен. Но обратите внимание, что localStorage имеет ограничение 2,5 МБ. Что касается библиотеки оболочки, то мне больше всего нравится моя собственная dev.yathit.com/ api-reference / ydn-db / storage.html, конечно. :-) - person Kyaw Tun; 26.11.2012