Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Phonegap本地存储返回空结果_Javascript_Android_Cordova_Web Sql - Fatal编程技术网

Javascript Phonegap本地存储返回空结果

Javascript Phonegap本地存储返回空结果,javascript,android,cordova,web-sql,Javascript,Android,Cordova,Web Sql,在应用程序的第一次加载时,我从存储中检索数据(Phonegap的WebSQL存储类型)。Phonegap存储结果加载正常。直到 当我转到应用程序中的其他页面时: 如果我使用Javascript中的window.location.href从第二个页面返回到该主页面,我将再次检索WebSQL数据(与前面的函数相同) Phonegap存储调用成功函数(无错误),但结果集为空。它似乎是从第二个数据库加载的,我没有在其中存储任何内容(请参见下面的编辑) 如果我强制退出应用程序并重新打开,存储加载会再次正

在应用程序的第一次加载时,我从存储中检索数据(Phonegap的WebSQL存储类型)。Phonegap存储结果加载正常。直到

当我转到应用程序中的其他页面时:

如果我使用Javascript中的
window.location.href
从第二个页面返回到该主页面,我将再次检索WebSQL数据(与前面的函数相同)

Phonegap存储调用成功函数(无错误),但结果集为空。它似乎是从第二个数据库加载的,我没有在其中存储任何内容(请参见下面的编辑)

如果我强制退出应用程序并重新打开,存储加载会再次正常,这表明数据库中的结果不会被删除

我在启动
ondevicerady
后加载存储器。有什么不对劲吗

注意:
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脚本链接的空白页面,但出现了一个错误。奇怪。。。我想知道这个错误是否影响了数据库?我正在尝试发现如何解决此错误。

我现在通过Ajax加载外部HTML页面:

$.mobile.changePage(“page2.html”)


我还按照建议切换到了pgsqlite。

我现在所做的是通过Ajax加载外部HTML页面:

$.mobile.changePage(“page2.html”)


我还按照建议切换到了pgsqlite。

我以前遇到过类似的问题,但我的问题是我试图从Java端和Javascript端写入同一个数据库。我就是这样解决的:

  • 首先,我在Android模拟器上运行该应用程序,并使用DDMS访问数据库,当时我意识到这两个应用程序在不同的数据库中编写

  • 我从使用
    WebSQL
    改为使用适当的
    SQLite
    数据库,之后我开始得到一致的结果。它是phonegap数据库存储实现的替代品,因此无需对代码进行太多更改。请看

我认为还需要注意的是
WebSQL
有一些存储限制,因此您最好使用
SQLite
WebSQL
。请参阅:


希望这有帮助:-)

我以前遇到过类似的问题,但我的问题是我试图从Java端和Javascript端写入同一个数据库。我就是这样解决的:

  • 首先,我在Android模拟器上运行该应用程序,并使用DDMS访问数据库,当时我意识到这两个应用程序在不同的数据库中编写

  • 我从使用
    WebSQL
    改为使用适当的
    SQLite
    数据库,之后我开始得到一致的结果。它是phonegap数据库存储实现的替代品,因此无需对代码进行太多更改。请看

我认为还需要注意的是
WebSQL
有一些存储限制,因此您最好使用
SQLite
WebSQL
。请参阅:


希望这有帮助:-)

您是否在表中插入任何记录?@VickyGonsalves是的,在第一次加载时我插入记录。然而,在离开并回到第一页后,我没有添加任何新记录。这就是为什么它返回到第一个页面后没有返回结果——因为它就像在创建第二个数据库。请参阅编辑。这在iOS中工作吗?@KyawTun是的,它在iOS模拟器上工作。您可以对我的库进行快速测试吗?我没有看到我的库报告问题。不同的是我使用无版本打开。你在表中插入记录了吗?@VickyGonsalves是的,在第一次加载时我插入记录。然而,在离开并回到第一页后,我没有添加任何新记录。这就是为什么它返回到第一个页面后没有返回结果——因为它就像在创建第二个数据库。请参阅编辑。这在iOS中工作吗?@KyawTun是的,它在iOS模拟器上工作。您可以对我的库进行快速测试吗?我没有看到我的库报告问题。不同的是我使用无版本的开放。好的信息和好的链接。现在我将继续使用我的解决方案使用WebSQL,但也许将来我会切换:)我遇到了更多的数据库问题,所以我刚刚切换到pgsqlite,到目前为止还不错,谢谢。太棒了。不错的选择,sqlite不会出错。很高兴你把问题解决了;-)良好的信息和良好的链接。现在我将继续使用我的解决方案使用WebSQL,但也许将来我会切换:)我遇到了更多的数据库问题,所以我刚刚切换到pgsqlite,到目前为止还不错,谢谢。太棒了。不错的选择,sqlite不会出错。很高兴你把问题解决了;-)