如何創建脫機啓用的Web應用程序,例如當用戶訪問hxxp:// mywebsite /時顯示 ,並且顯示hxxp:// mywebsite/offline /以外的狀態。 [在我的網站中有大約100個不同的動態頁面,所以我無法在緩存清單文件中將它們全部硬編碼]在緩存清單文件的FALLBACK部分中使用通配符HTML5
回答
CACHE MANIFEST
CACHE:
/Offline/OfflineIndex.html
FALLBACK:
//Offline/OfflineIndex.html
NETWORK:
*
這將導致整個網站的所有網頁在離線時重定向到離線。唯一的問題是聲明清單的頁面始終被緩存。這意味着您無法在每個頁面上聲明清單,因爲每個訪問過的頁面都將自行緩存並且不會重定向。所以你能做的就是聲明你在另一個HTML文件清單(IE。Synchronize.html),然後從您的應用程序是否已提供用於離線通過存儲cookie或localcache值默認勾選。如果沒有重定向到聲明的清單的synchronize.html,請設置localcache值,然後重定向回到索引。
OFFLINE AWESOMENESSSSSSSSSSS !!!!
我引用「manifest.php」而不是「cache.manifest」,然後我的PHP文件看起來像這樣:
<?php
header('Content-Type: text/cache-manifest');
echo "CACHE MANIFEST\n";
$hashes = "";
$dir = new RecursiveDirectoryIterator(".");
foreach(new RecursiveIteratorIterator($dir) as $file) {
$info = pathinfo($file);
if ($file->IsFile() &&
$file != "./manifest.php" &&
substr($file->getFilename(), 0, 1) != ".")
{
echo $file . "\n";
$hashes .= md5_file($file);
}
}
echo "# Hash: " . md5($hashes) . "\n";
?>
文件哈希它跟上最新的,這樣,如果任何文件的變化清單也會改變。希望有所幫助:)
但我該如何生成FALLBACK條目? – ashishb 2010-09-20 09:55:44
你只需要建立一些邏輯放到該腳本可以列出後備文件(基於路徑,文件名等)分開。循環一次,排除FALLBACK文件。再次循環,只包含FALLBACK文件。 – ggutenberg 2010-09-20 11:06:58
參考在你的索引頁一種無形的iframe您的清單文件。這樣,你的索引頁不被緩存,因爲它通常是在默認情況下,你必須在你的回退總量控制...
無需不可靠的餅乾或localStorage的!
- 1. HTML5緩存(清單)網絡部分
- 2. FALLBACK緩存清單不起作用
- 3. HTML5緩存清單
- 4. HTML5緩存清單緩存一切
- 5. HTML5清單緩存問題
- 6. iPhone和HTML5緩存清單
- 7. html5緩存清單設置
- 8. HTML5緩存清單異常
- 9. html5清單緩存錯誤
- 10. 移動Safari中的HTML5緩存清單
- 11. HTML5緩存清單:後備部分和網絡*
- 12. HTML5緩存清單緩存請求清單不
- 13. 懸掛在緩存清單文件上的HTML5瀏覽器
- 14. HTML5緩存清單工程通過HTTP但沒有使用https
- 15. 完全禁用HTML5緩存(清單)?
- 16. 緩存清單緩存網絡文件
- 17. HTML5應用程序清單不清除緩存清單更改
- 18. 使用通配符在緩存區中應用程序緩存
- 19. html5應用程序緩存清單文件進度錯誤
- 20. HTML5應用程序緩存清單文件擴展名
- 21. 我的HTML5應用程序緩存清單是緩存一切
- 22. 在Glob中使用部分通配符
- 23. 將外部文件包含在緩存清單中可以嗎?
- 24. HTML5清單文件
- 25. 如何在HTML5緩存清單中指定通配符以加載目錄中的所有圖像?
- 26. 我可以在MVC2中使用緩存清單文件嗎?
- 27. 如何使用CakePHP使用html5緩存清單?
- 28. HTML5緩存清單index.html不加載鏈接文件
- 29. 清單文件不禁用緩存
- 30. Html5緩存清單和郵政形式
並不完全符合我的要求,但對於其他人閱讀以獲得對離線HTML5更深入的瞭解仍然是一個很好的答案。 – ashishb 2010-11-29 20:21:18
清單的緩存是通過循環拋出的。這雖然幫助我們澄清了很多。謝謝 – drogon 2012-05-17 19:59:04