[whatwg] executeSql API is synchronous
mjs at apple.com
Wed Aug 8 13:36:43 PDT 2007
The executeSql() API returns a result synchronously. In general, SQL
databases may be slow to access since they need to be read from disk,
and if the database is not open already there's unlikely to be a ready
cache. This may make it hard to use the executeSql() API without
blocking the UI. All other HTML DOM operations that may require I/O to
complete are asynchronous, with the exception of synchronous
XMLHttpRequest which (a) causes UI lockup problems in practice and (b)
at least has an async variant.
The original Google Gears API that inspired executeSql gets around
this by providing a threading facility, so that worker threads can do
all the database access.
I think to make it possible to use executeSql without risk of harming
interactivity, we need either an async version, or a worker thread API.
More information about the whatwg