WebSQL was a HTML standards technology simply ahead of its time.
With the recent release of Chromium v125 in June 2024, WebSQL appears to have now been fully deprecated in Chromium based browsers. A shenanigans of a deprecation trial commenced in Chromium v119 in November 2023 - where the ultimate doomed fate of WebSQL was set. Now, mainstream browsers are unlikely to support WebSQL going forward. WebSQL was always a hot potato and a political mess in terms of HTML standards. Granted - there was merit to the fact that WebSQL should perhaps not have been based on a specific underlying technology. And yes, there were security issues with the underlying implementation of WebSQL. However, such security issues were never truly addressed. Instead, those WebSQL components with security vulnerabilities were simply progressively removed or omitted from the browser. Instead of addressing the core problems, functionality of WebSQL was progressively removed from browsers since its introduction in 2009 to a point the technology was mangled and almost rendered hopeless. You can see a rant by the author, Harris Hudson - see "Get Involved" section below. Now, SQLite as a wasm port has been put forward as the replacement to WebSQL by the browser developer community. And in certain respects, that has a promising future - although anecdotally there may be use cases where it doesn't quite match the performance of WebSQL particularly for complex joins of large datasets. But even if SQLite wasm is a workable alternative - it misses the primary point when it comes to HTML web standards. The need for a HTML standards based relational database built natively in to the browser still exists today (June 2024). Yes, WebSQL might have been becoming unmanageable but now, a SQLite wasm port doesn't solve this need for standards. Where are the standards? Hopefully sometime in the future there will come a time again when the broader community can realize that a standards based relational (probably SQL) engine built into browsers will be a positive move. Not everyone is a javascript programmer and that fact appears to be overlooked by the browser developer community. WebSQL enabled the end user to interact with the storage layers using SQL. The Web Ecosystem continues to evolve and large CORS enabled open relational datasets are now ubiquitous on the web. Yes, WebSQL was not perfect - but the political mess and the mangling by successive removal of its technology components from browsers over the years since its introduction and ultimate deprecation - well, that was simply an abomination! Harris Hudson, the author of Visual Field, is currently looking into porting Visual Field to a SQLite wasm port, but with such a large code base - this is a significant undertaking. If Harris can rework Visual Field as a SQLite wasm port - there would be the potential for a more broader browser base support. Although such a port still won't address the elephant in the room - that is the glaring omission of HTML standards for a browser based relational database. Stay tuned.
Whilst not really recommending the use of older software, if you would like to see the following WebSQL Visual Field examples below in the page function correctly, you may need to use an older browser that supports WebSQL. For Chromium based browsers, you will need to look at a version prior to version v119 - when the deprecation trial shenanigans began for WebSQL. A possible commit token for an arbitrary Chromium v118 version (prior to the WebSQL deprecation) is 1185669. Whilst not associated with this website in any way, if you would like to see the examples below in action, you may be able to download an older Chromium based browser supporting WebSQL from here;
https://commondatastorage.googleapis.com/chromium-browser-snapshots/index.html
For example;
Current Version (3.4.0) Run Now; vf.html, Download; (1013 kB, 164 kB gzipped)
integrity="sha384-Elej0LuLYWgkFmbSDN1tijZIrA9d7l1PAI7WluiCnJJRCXwkjT4GWkFEGWaLQbbr"
For these examples, your Visual Field metadata is not reset and will just be added to cumulatively. Reseting your metadata between each example, may make it easier for you to understand individual example configuration. Go; Dictionary Reset Metadata Reset. Press for a Help Page about each example.
Visual Field is essentially an Open Source single html file - vf.html, with some other associated files to support different usage modes. It enables you to consume and process delimited data files and web services (eg; CSV).
Not all current browsers support HTML5 and WebSQL. And of those browsers that do, not all underlying devices support a WebSQL database when invoked as a standalone html file. The browsers currently supporting a fully WebSQL database is still somewhat fairly dynamic and changing (even as at 2019). See "Get Involved" section below.
Visual Field is intended to be able to be used in any of the following ways;
For an online web application, just install the vf.html file in your intended web server directory. This will allow Visual Field on your web server to be used in an online way.
For an offline web application, you will need to install both vf.html and the vf_service_worker.js files in your intended web server directory. This will allow Visual Field to be loaded in a browser even if your users do not have an internet connection (after initial load). Both the vf.hml and vf_service_worker.js will need to reside in the same directory.
Visual Field can function as a stand alone html file just by loading the vf.html file in your browser using a file:// protocol context. That is, no web server is necessary to use the full functions of Visual Field. This usage option may be useful if you are unable to install Visual Field on a web server or unable to install it as a Progressive Web Application.
Progressive Web Applications are intended to be able to be installed on your device by using HTML component "Add to Home Screen" (A2HS). As of version 3.1.0, Visual Field is typically able to be installed on your device by a simple click on the "Install" option under the "Help" tab. This enables a quick, simple, non-technical install of Visual Field on to your users device. In order to support Visual Field as a Progressive Web Application, you will need to place vf.html, vf_service_worker.js, vf.webmanifest and the favicon.svg all 4 files on to your web server in the same directory. Should all these files be installed on your web server, and your web server can serve these over https, then end users should be able to successfully invoke the "Install" option, under the "Help" tab, to add Visual Field to their device as an installed Progressive Web Application. Ie, a simple, non-technical, install on their device.
The vf.html file is intended to be able to be loaded as a stand alone file (from a file:// protocol context) or served via a web server. If you do serve it via a web server, you may wish to download and add the optional vf_service_worker.js file and place it in the same directory as vf.html. This will turn your served version of Visual Field into a true Offline Web Application in that it can be reloaded and used in a browser (from a https:// protocol context) without needing internet access. Something to consider if you make presentations, or you may be an emergency worker out in the field, with unreliable internet access.
To demonstrate the Offline Web capability, follow this scenario;
SF Schools by CCSF
14:08 min
Version 2 - What's new.
21:10 min
Building Example 10 shortest path.
17:34 min
A look beyond the edge with Visual Field
15:36 min
https://github.com/harrishudson/VisualField
Harris, the author of Visual Field, will be giving a short talk about Visual Field in this years FOSS4G 2021 online meetup - with this years focus on Buenos Aires Argentina. Starting with a brief introduction, then a short demonstration, and finishing with what you can do - how to get involved. Whether you are technical or non-technical, if you work with Open Data, data manipulation and visualizations, you may find this talk of interest to you. A link to the video of the talk will be placed here after September 30 2021. Hope to see you there - September 30 2021. To watch the video - see Tutorial "FOSS4G 2021" above.
WebSQL (browser based SQLite database variant) has had an uncertainty cloud overhead for it's whole lifespan since it's introduction in 2009. There was a W3 impasse, in relation to standards support of WebSQL, in 2010 that persists today. Some browsers support WebSQL, some do not, some browsers have it as an experimental feature, some browsers removed the full text search (FTS) capability from WebSQL over security concerns, some browsers don't support outer joins, some browsers removed support in third party contexts, some are intending to remove other features of WebSQL, and some have future plans to deprecate and remove it entirely. WebSQL is becoming mangled. The Web Ecosystem has continued to evolve since 2010 - things like CORS HTTP headers, the ubiquity of javascript visualization frameworks, and the ubiquity of Open Data CSV datasets - now makes browser based processing of relational style data more important than ever. WebSQL isn't perfect. But to remove WebSQL now from browsers without replacing it with a standards based alternative SQL engine would be a real travesty. Half of the worlds population now have a smartphone (as at 2021) and more than 80% do in 2023. In many use cases now (for processing Open Data) - WebSQL means there is no longer a need for back-end, or cloud, databases for processing datasets in many cases. For those browsers that support it, WebSQL brings these benefits over other browser based storage mechanisms;
If you can see the benefit of WebSQL, or an alternate standards based SQL engine built right into the browser - to process your relational style datasets (eg; CSV) - then you need to get vocal with the developers of your favourite browser NOW!
© 2019-2024 Harris Hudson.
It has taken a significant effort to develop this application.
If you find it useful in your project - consider making a donation.
Donations will go directly towards continued Open Source development efforts and potential
rewrite of this app as a SQLite wasm implementation.
https://harrishudson.com/#sponsor
Map tiles © OpenStreetMap
Please, download your copy of Visual Field, and do not link your production web applications to the vf.html page hosted on this website.