Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

It always annoys me when SPAs don't allow me to do basic things when I lose my connection.

Webstorage has excellent browser support but isn't utilised enough (http://caniuse.com/#search=webstorage)



Webstorage is a bit handicapped for SPAs. There is a 5MB size cap, and you can only store strings. It's nice as a cookie replacement, but the limitations hurt for anything more advanced. IndexedDB resolves these issues while also being fairly well supported.


IndexedDB has terrible support. Sadly LocalStorage is the only reliably supported option right now. I really hope in 6 months this comment is wrong.

--EDIT-- sorry @untog, I replied to the wrong comment and deleted before as you replied.


Use a library that uses IndexedDB and uses WebSQL as a fallback then.


This is what we do and it worked great until iOS8 came along. Read more about some problems here http://www.raymondcamden.com/2014/9/25/IndexedDB-on-iOS-8--B...


The Web SQL Database specification is no longer being maintained and support may be dropped in future versions.

Also - these fallbacks are not exactly swappable. Its like swapping from a Database to a Filesystem as a fallback. Difficult to abstract into a single library/api.

And you still potentially leave out IE users if those are your options (depending on your IndexedDB needs).

IndexedDB to localStorage fallback might work - but again might not be an easy API abstraction.


I have had good luck with https://github.com/mozilla/localForage as an API abstraction


PouchDB, ydn-db, IndexedDBShim, and Lawnchair will do this as well.

Web SQL may be "deprecated," but it's unlikely to be dropped by Apple or Google, since so many mobile web apps depend on it. Even the mobile version of Gmail uses Web SQL.


I wonder if asm.js + the sqlite3 driver + localstorage would suffice.. it would certainly be interesting.


> .. and you can only store strings

That's isn't much of a problem with JSON.strigify and JSON.strigify.


Except that eats into your already small storage quota, and burns CPU.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: