1

WebKit(Safari 4+ 是我的重点)有一个称为 Web SQL 的功能。W3C 草案中指定了 Web SQL 。目前仅支持异步风格。

我有一种情况,我想同步一些不同的操作——写入数据库(使用 CREATE TABLE 查询,然后循环通过 INSERT 查询),然后从数据库中读取。我该怎么做呢?我用谷歌搜索并阅读了很多教程,但没有找到任何解释。

如果我找不到答案,我将尝试 Worker 功能,如果不成功,我计划将数据存储在webstorage (localstorage)中。

4

3 回答 3

1

我在我的博客中为此写了一个可能的解决方案。不知道这是否适合你的问题,但看看。 http://wander-mind.blogspot.com/2011/03/how-to-synchronize-html5-websql-with.html

于 2011-03-27T08:49:00.613 回答
0

似乎没有人回答这个问题。我目前的理解是在本地存储中存储一个块是最好的

于 2010-10-18T10:41:43.937 回答
0

您通过成功回调链接操作。这样您就可以确定操作的顺序。请参阅本文中提供的示例代码。

您可以使用可用于事务对象或单个查询的回调,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,其中localStorageWebSql是其中的一部分。

于 2013-08-07T12:14:01.610 回答