Web SQL Web Worker同步

时间:2013-04-30 16:36:30

标签: web-worker web-sql

首先,对不起我的英文......

也许这是胡说八道,但我有以下问题:

我有一个jquery事件调用...

$('#buttonX').click(function(){
    function1();
    alert(function2());
});

function1和function2调用同时执行Web SQL查询的Web Worker:

function2()
{
    var dbSync = new Worker('dbSync.js');
    var result;
    dbSync.postMessage();
    dbSync.onmessage = function (oEvent) {
        result = oEvent.data;
        console.log("result: " + result);
        return result;
    };
}

CODE dbSync.js:

var db = openDatabaseSync('mydb', '1.0', 'my database', 3 * 1024 * 1024);
self.onmessage = function(event) {
    var numRecords;

    db.transaction(function (tx) {
        var results = tx.executeSql('SELECT  * FROM foo ', []);
        numRecords = results.rows.length;
        self.postMessage(numRecords);
    });
};

但是当点击'buttonX'时,执行的第一件事是警报......甚至在执行function1和function2之前。

我想这是因为Web Workers总是异步运行但是...有没有办法让所有进程同步?

...我已经在没有Web Worker的情况下测试了该进程,但是,不支持OpenDatabaseSync方法。

所以,任何建议都将受到赞赏。

提前致谢。

0 个答案:

没有答案