WebKit(Safari 4+是我的重点)有一个名为Web SQL的功能。 Web SQL在the W3C draft中指定。 目前只支持异步风格。
我有一种情况,我希望同步几个不同的操作 - 写入数据库(使用CREATE TABLE查询,然后通过INSERT查询循环),然后从数据库中读取。我该怎么做呢?我用Google搜索并阅读了很多教程,但没有找到任何解释。
如果我找不到答案,我将尝试工作人员功能,如果不成功,我打算将数据存储在webstorage (localstorage)中。
答案 0 :(得分:1)
我已经在我的博客中为此写了一个可能的解决方案。不知道这是否适合你的问题,但看看。 http://wander-mind.blogspot.com/2011/03/how-to-synchronize-html5-websql-with.html
答案 1 :(得分:0)
似乎没有人回答这个问题。我目前的理解是将块存储在localstorage中是最好的
答案 2 :(得分:0)
通过成功回调链接操作。这样你就可以确定操作的顺序。请参阅this article中提供的示例代码。
您可以使用可用于事务对象或单个查询的回调tx.executeSql(sql, [], callback, errorCallback)
。
var sql_createTables = "CREATE .....",
sql_inserts= "INSERT .....";
function errorHandler(tx, error) {
//do error handling
}
db.transaction(
function(tx){
tx.executeSql(sql_createTables,[], function(tx, result){
//The table was created
tx.executeSql(sql_inserts,[], function(tx, result){
// Inserts completed
});
},
errorHandler);
}, function(error) { alert("Oh, noes! The whole transaction failed!"); },
function() { alert("Yeah, baby! We did it."); });
WebWorker与此无关,并且不会以任何方式帮助您,因为WebWorker
无法访问DOM,localStorage
和WebSql
是其中的一部分。