我有一个 Worker,我想在其中执行我的 sql 查询。但是,这就是我的问题,我希望所有这些查询都在同一个事务中执行。这就是我现在拥有我的(不工作的)工人的方式:
db = openDatabase("WorkerFoo", "", "", 1);
if (db) {
db.transaction(function (tx) {
self.onmessage = function(e) {
tx.executeSql(e.data, [], function(tx, rs){
self.postMessage(rs.rows.item(0)) ;
}) ;
};
}) ;
}
else {
self.postMessage('No WebSql support in Worker') ;
}
但是,这样做不会发生任何事情(没有错误)。任何建议如何解决这个问题?
我遇到的另一个(相关)问题是,如果查询阻塞了 UI 线程,因为查询很重并且需要几秒钟,那么在 Worker 中执行查询会解决这个问题吗?
非常感谢!