WebKit(Safari 4+ 是我的重点)有一个称为 Web SQL 的功能。W3C 草案中指定了 Web SQL 。目前仅支持异步风格。
我有一种情况,我想同步一些不同的操作——写入数据库(使用 CREATE TABLE 查询,然后循环通过 INSERT 查询),然后从数据库中读取。我该怎么做呢?我用谷歌搜索并阅读了很多教程,但没有找到任何解释。
如果我找不到答案,我将尝试 Worker 功能,如果不成功,我计划将数据存储在webstorage (localstorage)中。
WebKit(Safari 4+ 是我的重点)有一个称为 Web SQL 的功能。W3C 草案中指定了 Web SQL 。目前仅支持异步风格。
我有一种情况,我想同步一些不同的操作——写入数据库(使用 CREATE TABLE 查询,然后循环通过 INSERT 查询),然后从数据库中读取。我该怎么做呢?我用谷歌搜索并阅读了很多教程,但没有找到任何解释。
如果我找不到答案,我将尝试 Worker 功能,如果不成功,我计划将数据存储在webstorage (localstorage)中。
我在我的博客中为此写了一个可能的解决方案。不知道这是否适合你的问题,但看看。 http://wander-mind.blogspot.com/2011/03/how-to-synchronize-html5-websql-with.html
似乎没有人回答这个问题。我目前的理解是在本地存储中存储一个块是最好的
您通过成功回调链接操作。这样您就可以确定操作的顺序。请参阅本文中提供的示例代码。
您可以使用可用于事务对象或单个查询的回调,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 与此无关,也不会以任何方式帮助您,因为 aWebWorker
无法访问 DOM,其中localStorage
和WebSql
是其中的一部分。