Опции за офлайн съхранение на 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

В сравнение с по-старите опции (бисквитки, съхранение, базирано на добавки, специфични за браузъра функции), ще цитирам от статията:

„По-новите 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 MB. По отношение на библиотеката с обвивки, любимата ми е моята собствена dev.yathit.com/ api-reference/ydn-db/storage.html, разбира се. :-) - person Kyaw Tun; 26.11.2012