【问题标题】:js worker and websql database on phonegapphonegap 上的 js worker 和 websql 数据库
【发布时间】:2023-12-18 12:41:01
【问题描述】:

我在 phonegap 上的工作人员和数据库有问题

我的 main.js 打开数据库并执行人员(创建表,插入数据),它工作正常,在 main.js 中我调用了一个工人

在worker.js中我必须使用我的数据库所以我这样做

db = openDatabase('kpi', '1.0', 'dashboard kpi', 5 * 1024 * 1024);

我这样做是因为我无法将对象数据库传递给我的工作人员。

当我运行我的代码时,我遇到了这个错误:

[Error] unable to open database, version mismatch, '1.0' does not match the currentVersion of ''

我不明白为什么它不想在我的工作人员中打开我的数据库,我没有更改我的数据库版本....

【问题讨论】:

    标签: javascript database cordova worker


    【解决方案1】:

    var worker=new Worker("js/uga_db_worker.js");

        worker.postMessage(ugaName);
    
        worker.onmessage=function(event){
    
    
            }
    
        };
    

    这是我在 main.js 中的调用

    我找到了解决方法,如果在我的工作人员中我没有为 opendatabase 使用数字版本,那么一切正常

    db = openDatabase('kpisselencro', '', 'dashboard kpisselincro', 5 * 1024 * 1024);
    

    版本号是空的,不知道是什么原因,不过好像真的修好了。

    【讨论】:

    • 版本号是个问题...所以大多数人建议避免使用它们。
    【解决方案2】:

    你是如何在 main.js 中调用 worker.js 的,如果你在不同的 js 中定义,opendatabase 方法不会有任何问题。

    您能否提供代码 sn-p 您如何称呼它?

    【讨论】:

    • var worker=new Worker("js/uga_db_worker.js"); worker.postMessage(ugaName); worker.onmessage=函数(事件){ } };这是我在 main.js 中的调用,我找到了一个修复程序,如果在我的工作人员中我没有为 opendatabase 使用数字版本,一切正常 db = openDatabase('kpisselencro', '', 'dashboard kpisselincro', 5 * 1024 * 1024);版本号是空的,我不知道为什么,但它似乎真的修复它。
    最近更新 更多