【发布时间】:2013-05-06 21:03:44
【问题描述】:
在应用第一次加载时,我从存储(Phonegap 的 WebSQL 存储类型)中检索数据。 Phonegap 存储结果加载正常。直到……
当我转到应用程序中的另一个页面时:
<a href="page2.html" rel="external">Link</a>
如果我在 Javascript 中使用 window.location.href 从第二页返回到该主页,我将再次检索 WebSQL 数据(与之前的功能相同)。
Phonegap Storage 调用成功函数(无错误),但结果集为空。它似乎是从我没有存储任何内容的第二个数据库加载的(请参阅下面的编辑)。
如果我强制退出应用程序并重新打开,存储会再次正常加载,这表明数据库中的结果没有被删除。
我在ondeviceready 被触发后加载存储。有什么问题?
注意:
1. 这不会发生在模拟器上。仅在真正的 Android 4.0 设备上发生。
2.本应用使用jQuery / jQuery Mobile。
function ondeviceready() {
db = window.openDatabase("test", "1.0", "test DB", 2000000);
// . . . //
db.transaction(function(tx) {
tx.executeSql('SELECT * FROM table ORDER BY name', [], querysuccess, function(tx, e) {
errorAlert();
});
}), errorCB;
}
编辑: 我现在注意到,如果我在第一次加载应用程序时添加一个新行,它会存储在一个数据库中。然后,如果我转到第二页,然后返回第一页,并添加另一行,它也会存储,但 在单独的数据库中!(这就是它似乎在做的事情) .太奇怪了,我看到这种情况发生了。我的所有行都被保存和持久化,但查询返回一组不同的结果,具体取决于我是否转到第二页...
还有: 由于某种原因,第二页出现 jQuery 错误。我刚刚创建了一个带有 jQuery 脚本链接的空白页面,但出现了错误。奇怪...不知道这个错误是否影响数据库?我正在尝试发现如何解决此错误。
【问题讨论】:
-
您是否在表中插入任何记录?
-
@VickyGonsalves 是的,在第一次加载时我插入记录。但是,离开并返回到第一页后,我没有添加任何新记录。这就是为什么它在返回第一页后没有返回任何结果 - 因为它就像是在创建第二个数据库。见编辑。
-
这在 iOS 上能用吗?
-
@KyawTun 是的,它适用于 iOS 模拟器
-
您能否对我的库进行快速测试bitbucket.org/ytkyaw/ydn-db/wiki/Home 我没有看到我的库报告的问题。不同的是我使用无版本打开。
标签: javascript android cordova web-sql