- From: <mikko.honkala@nokia.com>
- Date: Wed, 23 Jul 2008 14:07:54 +0300
- To: <public-html@w3.org>
Hello Group, threads in JavaScript are a necessity for "real" apps, so having the Worker Thread spec'd is good. It also means that now we should have also a synchronous DB API (like the one Gears has), since combined with Worker Threads they make the programming model simpler and less error-prone (e.g., exception catching can be used for larger execution stacks) compared to the current asynchronous-only DB API of HTML5. For a related discussion, please see e.g., http://lists.w3.org/Archives/Public/public-html/2007Oct/0294.html "Indeed, when we introduce worker pool APIs I think we'll have to introduce a synchronous version of this API." -IH And http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2007-August/012318.h tml My strawman proposal for synchronous DB API (Modeled after Gears and Current HTML5 DB API) would be along these lines: interface Database { void transaction(in SQLTransactionCallback callback); void transaction(in SQLTransactionCallback callback, in SQLTransactionErrorCallback errorCallback); void transaction(in SQLTransactionCallback callback, in SQLTransactionErrorCallback errorCallback, in VoidCallback successCallback); readonly attribute DOMString version; void changeVersion(in DOMString oldVersion, in DOMString newVersion, in SQLTransactionCallback callback, in SQLTransactionErrorCallback errorCallback, in VoidCallback successCallback); /* BEGIN ADDED */ SQLTransactionSync transactionSync(); // only one transaction per thread - otherwise throw exception // throw exception if preflight condition does not match. // Returned object does postflight operation when commit() is called. SQLTransactionSync changeVersionSync(in DOMString oldVersion, in DOMString newVersion); /* END ADDED */ }; /* BEGIN ADDED */ interface SQLTransactionSync { SQLResultSet executeSql(in DOMString sqlStatement); SQLResultSet executeSql(in DOMString sqlStatement, in ObjectArray arguments); void commit(); void rollback(); }; exception SQLException { readonly attribute unsigned int code; readonly attribute DOMString message; }; /* END ADDED */ Comments? Regards, Mikko Honkala
Received on Wednesday, 23 July 2008 11:07:48 UTC