2

我已经使用数据库创建了一个数据库并显示在列表视图中,但是我想在另外两个页面中使用相同的数据库,那么如何在多个页面中访问相同的数据库?请通过我的代码..

 var db = window.openDatabase("Mydatabase", "1.0", "Just a My DB", 200000); //will create database Mydatabase or open it
    function onDeviceReady(){
        db.transaction(populateDB, errorCB, successCB);
    }
    function populateDB(tx) {
        tx.executeSql('CREATE TABLE IF NOT EXISTS ALLWORDS (id INTEGER PRIMARY KEY AUTOINCREMENT, Word TEXT NOT NULL, Type_Of_Word TEXT NOT NULL)');

    }
    function errorCB(err) {
        alert("error in database : "+err);
    }

    function successCB() {
        alert("successs!");
        db.transaction(queryDB,errorCB);
    }

    function queryDB(tx){
        tx.executeSql('SELECT * FROM ALLWORDS',[],querySuccess,errorCB);
4

1 回答 1

1

重要的一行是:

 var db = window.openDatabase("Mydatabase", "1.0", "Just a My DB", 200000); 

如果数据库不存在,它将创建它,如果存在,它将返回到该数据库的连接。

所以你可以把这一行放在一个单独的 js 文件中,我们称之为 global.js,然后将它包含在你需要的每个页面中,之后包含的所有脚本都会知道该变量,例如:

global.js

...
var db = window.openDatabase("Mydatabase", "1.0", "Just a My DB", 200000); //should be defined in the script itself, not inside of a function.
...

脚本.js

//in the HTML this is included after the global.js so it knows the db variable
function onDeviceReady(){
        db.transaction(populateDB, errorCB, successCB);
    }

HTML

//global should always come first
<script src="global.js" type="text/javascript"></script>
<script src="script.js" type="text/javascript"></script>

这样,您只需要定义一次。当然,在全局中,您应该放置许多文件将使用的所有其他函数/变量。

于 2012-08-08T06:25:12.650 回答