4

phonegap を使用してアプリケーションを作成しています。最初にアプリケーションをロードしたときに、テーブルとデータを作成してデータベースに挿入したいのですが、毎回アプリケーションを実行すると、データが再度挿入され、ロード時間が増加します。テーブルが作成されたかどうかを確認するにはどうすればよいですかデータを再度挿入しないでください。

    document.addEventListener("deviceready", onDeviceReady, false);


    var dbShell ;

     function onDeviceReady() {

     dbShell = window.openDatabase("BaharNarenj", "1.0", "BaharNarenj", 2000000);

    dbShell.transaction(setupTable,dbErrorHandler,getEntries);

    }

function setupTable(tx){

    tx.executeSql("CREATE TABLE IF NOT EXISTS amaken(id INTEGER,title,des,px,py)");     

tx.executeSql('insert into amaken(id,title,des,px,py) values(2,"test","dec","36.566185","55.059502")');     

 tx.executeSql('insert into amaken(id,title,des,px,py) values(4,"test5","dec5","36.566185","55.059502")');  
}



function dbErrorHandler(err){
 alert("DB Error: "+err.message + "\nCode="+err.code);
}


function getEntries() {
alert("done");
}
4

1 に答える 1

3

ローカル ストレージに 1 つのフラグ (次のコードの XApp1.0 など) を設定し、その後のアプリの実行中にそのフラグの値を確認できます。これがあなたを助けることを願っています。

function onDeviceReady() {
    var firstrun = window.localStorage.getItem("XApp1.0"); 
    if ( firstrun == null ) {
        window.localStorage.setItem("XApp1.0", "1"); 
        var db = window.openDatabase("XApp", "1.0", "XApp", 200000);
        db.transaction(populateDB, errorCB, successCB);
    }
    else {
        // Db Alredy Exists
        var db = window.openDatabase("XApp", "1.0", "XApp", 200000);
        db.transaction(queryDB, errorCB);
    }
}
于 2013-07-10T12:47:08.497 に答える