2013-07-05 52 views
4

自從上個星期我潛入移動應用程序開發之後。我想要做的就是使用Phonegap來緩存Json-Files,即使沒有WiFi或互聯網連接,WebApp也能正常工作。 我很困惑。我讀過關於離線緩存的許多說法。 但我不明白的是,如何使用例如緩存的Json-Files在離線模式下呈現我的網絡應用程序。Phonegap在本地設備上緩存Json數據

我一直以爲它可以工作如下:

比方說,我有一個網站,這是responisve。本網站的內容是基於Json-Data動態生成的。

現在我想把這個網站帶到移動設備上。 我從Phonegap開始。我寫了我的第一個簡單的應用程序與一個webview或一個InAppBrowser,它擁有我的網站。 現在我想讓這個應用程序能夠工作,即使脫機基於緩存的Json-Data。 這是我懸在空中的地方。我不知道更多。 我是否請求Json-Data並將此數據存儲到PhoneGap文件-Api的設備的本地文件系統中?以及如何使用這些數據來構建我的佈局。 據瞭解,我將PhoneGap作爲一個容器,它在我的響應(HTML5,CCS,JS)網站和原生函數之間架起了橋樑。 所以我明白的是,我可以加載我的網站在一個PhonGap容器內,它看起來像一個應用程序。但是當我離線時,我必須有數據緩存。 Json-Data最重要的是標記所基於的。我怎樣才能從我的本地設備加載這個Json-Data並使用這些數據來渲染? 今天我正在構建一個簡單的應用程序,使用PhoneGap和InAppBrowser。然後,我發現沒有教程如何緩存Json-Data,這是由我的響應網站拉動的。我可以看到這些數據已被使用(通過Fiddler作爲反轉)。所以這些數據必須傳輸到InAppBrowser。我以爲我誤解了一些東西。也許我必須包括一切到index.html(我使用eclipse和phonegap和android)。 任何人都可以告訴我一個簡單的例子如何我可以打電話給我的網站,緩存JSON數據(大文件,與PhoneGap文件-Api本地設備上高達100MB),並使用此Json文件來呈現我的網站脫機時? 這有可能嗎?


更新: 我發現這個職位在互聯網上,可以調整,以滿足我的需求:here 從這個例子中的代碼,是在index.html這個代碼或者是這個代碼在網站內使用?我是否也必須將cordova.js加入我的網站?

非常感謝提前。

回答

1

通常情況下,您可以將JSON數據存儲到HTML5本地存儲中並使其脫機。但是這裏的本地存儲大小限制可達5MB。

但正如你說你是大數據工作的話, 您可以通過這種方式做到這一點:

  • 處理所有的Web服務創建PhoneGap的自定義插件調用
  • 使用該插件還儲存JSON數據到本地存儲數據庫(有 是沒有大小限制,因爲你正在使用的設備存儲)

所以,就會有你的HTML代碼,而不是插件沒有Ajax調用正在處理它。

+0

感謝您的回答。這種方法是我可以嘗試的,但我在這裏找到了一些東西:[link](http://www.raymondcamden.com/index.cfm/2012/1/19/Downloading-files-to-a-PhoneGap-應用 - 部分-1)。我的問題是這樣的:當我在InAppBrowser或WebView中加載我的WebSite時,如何根據緩存的Json-Data在離線模式下重建標記。至於現在我知道你可以編寫一個SPA(JS,AJAX,CSS等)。所以現在我完全控制了標記。並且可以使用緩存的Json-Data重建它。 – TorchMan

0

您可以將json保存到文件系統中...並且您不需要LocalStorage或DB。

+0

你說得對。我已經成功下載了大約130MB的Json-Data,以解析它並在需要時建立我的標記(基於用戶交互)。我將數據存儲在SD卡上 - 當我的應用程序離線時 - 來自SD卡的數據被另一個人拉到另一個地方,一個Ajax請求正在玩遊戲。什麼幫助veeery更多的是使用jQuery延遲和承諾不會遇到與Phonegap的spaghetty代碼。 – TorchMan

相關問題