2011-07-19 58 views
2

我發佈了一個question關於爲什麼我的$ .getJSON已停止,但我認爲這個問題現在有點寬了。HTML5緩存線上和線下使用的Javascript文件

我有一個移動的HTML5應用程序,它可以向一個php web應用程序發出Ajax請求(在同一個域上)。當有互聯網連接,即。 navigator.onLine == true我對web應用程序執行$ ​​.getJSON調用,並將響應本地存儲在設備瀏覽器的websql數據庫中。

如果navigator.onLine == false,那麼我想跳過json請求並將數據從本地取出。我的JSON的作品,我成功地存儲在離線websql存儲,但我的問題出現在添加緩存清單文件。

我不知道如何緩存我需要的東西。這裏是我的緩存清單:

CACHE MANIFEST 

# rev 2 

CACHE: 
index.html 
app.html 
http://code.jquery.com/mobile/1.0a1/jquery.mobile-1.0a1.min.js 
http://code.jquery.com/mobile/1.0a1/jquery.mobile-1.0a1.min.css 
http://code.jquery.com/jquery-1.4.3.min.js 
js/data.js 
js/script.js 

我想我是正確的假設,我可以從code.jquery.com/..緩存外部文件?因爲我需要他們在線和離線。

Eric在我之前的問題中發佈了一個答案,說我應該在NETWORK:標題下添加JS文件,最後加上*。當我這樣做時,我的JSON調用就像我想要的那樣觸發。但是現在這些文件不能脫機。

這似乎是工作很好,但,當我去下線甚至不是我的CSS加載:

CACHE MANIFEST 

# rev 2 

CACHE: 
index.html 
app.html 
js/data.js 
http://code.jquery.com/mobile/1.0a1/jquery.mobile-1.0a1.min.js 
http://code.jquery.com/mobile/1.0a1/jquery.mobile-1.0a1.min.css 
http://code.jquery.com/jquery-1.4.3.min.js 
js/script.js 

NETWORK: 
* 

任何人都可以提出來緩存的JavaScript/CSS文件以供離線使用的最佳做法是什麼?

非常感謝,

比利

回答

0

退房http://westciv.com/tools/manifestR/,它是用於創建清單文件,你的應用需要一個偉大的工具。

AppCache要求您希望在本地提供的所有內容都列在清單文件中,因此在這種情況下,您需要列出應用程序需要在脫機體驗中運行的所有JavaScript,CSS和任何其他文件。 ManifestR將幫助您找出該列表併爲您構建。

你的清單文件應該是這個樣子:

CACHE MANIFEST 
# rev 3 

CACHE: 
index.html 
app.html 
js/data.js 
http://code.jquery.com/mobile/1.0a1/jquery.mobile-1.0a1.min.js 
http://code.jquery.com/mobile/1.0a1/jquery.mobile-1.0a1.min.css 
http://code.jquery.com/jquery-1.4.3.min.js 
js/script.js 
style.css 
images.png 

NETWORK: 
*