我是使用Phonegap的新手,我尝试在应用关闭时创建一个可存储数组和设置首选项的应用。我正在考虑添加一个云保存功能,以便他们可以将数据保存到他们的Google驱动器或我自己的云中,我想我应该使用SQLite数据库吗?问题是我对SQLite数据库以及如何在JavaScript中使用它们知之甚少。如果我选择不使用云功能,您认为仅使用LocalStorage就足够了吗?
答案 0 :(得分:0)
这是一个有效的例子。这会在页面加载时创建数据库表。
var db;
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
db = window.openDatabase("DiaryDB", "1.0", "DiaryDB", 200000);
db.transaction(createDB, transaction_error, createDB_success);
}
function createDB(tx) {
tx.executeSql('DROP TABLE IF EXISTS DiaryTab');
var sql = "CREATE TABLE IF NOT EXISTS DiaryTab ("
+ "EntryID INTEGER PRIMARY KEY AUTOINCREMENT, "
+ "EntryDate TEXT, " + "EntryTitle TEXT, " + "EntryContent Text"
+ ")";
tx.executeSql(sql);
}
function transaction_error(tx, error) {
alert("Database Error: " + error);
}
function createDB_success(){
alert("Database and Table Created");
}
答案 1 :(得分:0)
这会插入一条新记录。只需更改SQL语句即可进行更新和删除。使用要插入的值填充entryDate,entryTitle和entryContent。
function insertRecord(tx){
var insertString = "INSERT INTO DiaryTab (entryDate, entryTitle, entryContent) VALUES ('"
+ entryDate + "','"
+ entryTitle + "','"
+ entryContent + "')";
tx.executeSql(insertString);
}
function saveEntry(){
entryDate = $("#date").val();
entryTitle = $("#title").val();
entryContent = $("#contents").val();
db.transaction(insertRecord, transaction_error, insert_success);
}
function transaction_error(tx, error) {
alert("Database Error: " + error);
}
function insert_success(){
alert("New Entry Inserted");
}
答案 2 :(得分:0)
localStorage
NOT 保证是持久性的,尤其是在iOS上。您不应该在localStorage
中存储任何不能在数据消失的情况下轻松重新创建或下载的内容。
有各种存储选项,其中使用SQLite插件只有一个。它们都不会实现云同步(除了在iDevices上通过iCloud备份)。你需要自己处理。您可能考虑PouchDB(不以任何方式附属),但也有很多其他选项。您还需要考虑此问题对安全和隐私的影响,并在您的隐私声明中将这些内容告知最终用户。