2013-11-28 100 views
1

好的,下面是我的清單文件。HTML 5應用程序緩存不要緩存文件清單命令?

CACHE MANIFEST 
#r3 

NETWORK: 
* 

CACHE: 
/js/jquery.maskedinput.js 
/js/less-1.5.0.min.js 
/css/styles.less 
/css/images/ui-bg_inset-hard_100_fcfdfd_1x100.png 
/css/images/ui-bg_glass_45_0078ae_1x400.png 
/css/images/ui-icons_e0fdff_256x240.png 
/css/images/ui-icons_0078ae_256x240.png 
/css/images/ui-icons_056b93_256x240.png 
/css/images/ui-bg_gloss-wave_75_2191c0_500x100.png 
/images/logo.png 
http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js 
http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js 

FALLBACK: 
//offline.php 

內的HTML標記的index.php文件,我有以下

<html manifest="/cache.manifest"> 

緩存確實工作,但工作太清楚。我沒有在文件中告訴它,我希望index.php被緩存,但默認情況下,它似乎假設你想緩存它被調用的文件。

對於我的程序,我不想不'不想這樣做。我只希望它緩存其他資源以幫助爲移動設備提供帶寬,然後在沒有互聯網連接時設置備用頁面。

現在它總是使用index.php的高速緩存版本,因此訪問我的頁面的用戶永遠不會看到offline.php,因爲它會緩存它。

如何防止文件假定它想要緩存清單聲明的文件? (或換句話說,在我的例子中是index.php)。

回答

0

我發現了一個很好的解決方案(My HTML5 Application Cache Manifest is caching everything),它在這裏列出。

它討論使用iFrame。通過將html緩存命令放入iframe中,並將iframe隱藏在index.php頁面上,我可以緩存所有其他文件,甚至正確創建後備文件。這是一種黑客,但它完成了工作:)。

1

您需要重新考慮應用程序流。如果着陸頁無法加載,瀏覽器如何首先啓動應用的離線版本? (在離線系統的情況下)。當您離線時,用戶需要指向離線的頁面。如果頁面沒有脫機,那麼瀏覽器將永遠不會讀取清單文件,因此永遠不會到達清單中的回退選項。

並且附註​​:的擴展名是out of date。使用.appcache擴展名以及來自服務器的正確標題。

+0

感謝您對文件擴展名的更新,沒有意識到它已經過時。 –

相關問題