There’s been a bit of disagreement in the web development community recently about one specific of the HTML5 specification: client-side data storage. Webkit browsers Chrome, Safari and Opera were early adopters of Web SQL DB based on SQLite, which meant this functionality was also available in iOS and Android devices. But Firefox and internet Explorer declined to make the raw power of a client-side relational database available to web application developers and instead proposed Indexed DB, an object-based data store.
How much does this matter? A lot.
With access to a robust relational database it’s relatively easy to port a complex desktop application to the web and make it available through a modern browser in any operating system whether the user is on-line or not. “Any operating system” includes tablets and smartphones, so a single web application covers every user environment. What’s more, the application’s performance will rival that of native software because data is stored locally, not retrieved from the web.
Of course, the Indexed DB offered by Firefox and Internet Explorer will still allow web applications to use this model, but it will be much more difficult to develop database-intensive applications for the web environment. It’s possible to build an abstraction layer over Indexed DB to emulate the functionality of a relational database, but the performance hit will be unacceptable for complex cases.
For me, the solution is as sad as it is blindingly obvious. Use the local Web SQL DB if it’s supported, otherwise use an internet database and tell the Firefox or Internet Explorer user:






Leigh is repaying karma from a previous life by working out this one in IT. She’s a project manager, developer, writer, musician … and a recovering soccer player.