Phonegap在本地设备上缓存Json数据

Phonegap在本地设备上缓存Json数据,json,caching,cordova,Json,Caching,Cordova,从上个星期开始,我就潜心于移动应用程序的开发。我想做的是使用Phonegap来缓存Json文件,这样即使没有wifi或internet连接,WebApp也能正常工作。 我很困惑。我读过很多关于离线缓存的文章。 但我不明白的是,如何使用缓存的Json文件在脱机模式下呈现我的web应用程序 我一直认为它可以如下工作: 假设我有一个网站,它是responisve。此站点的内容是基于Json数据动态生成的 现在我想把这个网站带到一个移动设备上。 我从Phonegap开始。我用webview或iApp浏览

从上个星期开始,我就潜心于移动应用程序的开发。我想做的是使用Phonegap来缓存Json文件,这样即使没有wifi或internet连接,WebApp也能正常工作。 我很困惑。我读过很多关于离线缓存的文章。 但我不明白的是,如何使用缓存的Json文件在脱机模式下呈现我的web应用程序

我一直认为它可以如下工作:

假设我有一个网站,它是responisve。此站点的内容是基于Json数据动态生成的

现在我想把这个网站带到一个移动设备上。 我从Phonegap开始。我用webview或iApp浏览器编写了我的第一个简单应用程序,它保存着我的网站。 现在,我想基于缓存的Json数据,使这个应用程序即使离线也能工作。 这就是我悬在空中的地方。我再也不知道了。 我是否请求Json数据并使用PhoneGap文件Api将该数据存储到设备的本地文件系统中?以及如何使用这些数据来构建我的布局。 据我所知,我将PhoneGap作为一个容器,它在我的响应(HTML5、CCS、JS)网站和本机功能之间架起了桥梁。 所以我真正理解的是,我可以在PhonGap容器中加载我的网站,它看起来就像一个应用程序。但当我离线时,我必须缓存数据。最重要的是标记所基于的Json数据。如何从本地设备加载此Json数据并使用此数据进行渲染? 今天我用PhoneGap和InApp浏览器构建了一个简单的应用程序。然后,我还没有找到如何缓存Json数据的教程,这是由我的响应式网站提供的。我可以看到这些数据已经被使用(通过Fiddler作为reverseproxy)。因此,必须将这些数据传输到InAppBrowser。我以为我不明白什么。也许我必须将所有内容都包含在index.html中(我正在使用eclipse、phonegap和android)。 有人能举一个简单的例子告诉我如何调用我的网站,缓存Json数据(大文件,使用PhoneGap文件Api在本地设备上高达100MB),并在脱机时使用此Json文件呈现我的网站吗? 这有可能吗


更新: 我在互联网上找到了这篇文章,可以根据我的需要进行调整: 本例中的代码是index.html中的代码还是网站中使用的代码?我是否也必须将cordova.js加入我的网站


非常感谢。

通常,您可以将JSON数据存储到HTML5 localstorage中并使其脱机。但在这里,localstorage的大小限制高达5MB

但正如你所说,你当时正在处理大数据, 您可以通过以下方法实现:

  • 创建phonegap自定义插件以处理所有webservice调用
  • 使用此插件还可以将JSON数据存储到本机存储数据库中(在那里) 没有大小限制(因为您正在使用设备存储)

因此,不会对HTML代码进行ajax调用,而是由插件处理它。

您可以将json保存到文件系统中。。。而且您不需要本地存储或数据库。

谢谢您的回答。我可以尝试这种方法,但我在这里发现了一些东西:。我的问题是:当我在InAppBrowser或WebView中加载我的网站时,如何能够基于缓存的Json数据在脱机模式下重建标记。到目前为止,我知道您可以编写一个包含所有内容(JS、AJAX、CSS等)的SPA。所以现在我完全控制了标记。可以用我缓存的Json数据重建它。你说得对。我已经设法下载了大约130MB的Json数据,以便在需要时(基于用户交互)对其进行解析和构建标记。我将数据存储在SD卡上——当我的应用程序离线时——来自SD卡的数据在ajax请求玩游戏时被拉到其他位置。帮助veeery的是延迟使用jQuery,并承诺不会在Phonegap中遇到spaghetty代码。