下載所有文件和緩存,默認情況下,html5緩存的工作方式是在manifest中提及的file/page/js/css/image文件在加載時被緩存第一,但我要求所有的文件應該從我的主頁一次緩存....有沒有辦法從緩存清單文件
1
A
回答
0
我得到了腳本來緩存您在清單文件中提到的所有文件。
<!DOCTYPE html>
<html manifest='../cache.manifest'>// reference path of your manifest file
<head>
<title>Untitled Document</title>
<script type="text/javascript">
var cacheStatusValues = [];
cacheStatusValues[0] = 'uncached';
cacheStatusValues[1] = 'idle';
cacheStatusValues[2] = 'checking';
cacheStatusValues[3] = 'downloading';
cacheStatusValues[4] = 'updateready';
cacheStatusValues[5] = 'obsolete';
var cache = window.applicationCache;
cache.addEventListener('cached', logEvent, false);
cache.addEventListener('checking', logEvent, false);
cache.addEventListener('downloading', logEvent, false);
cache.addEventListener('error', logEvent, false);
cache.addEventListener('noupdate', logEvent, false);
cache.addEventListener('obsolete', logEvent, false);
cache.addEventListener('progress', logEvent, false);
cache.addEventListener('updateready', logEvent, false);
function logEvent(e) {
var online, status, type, message;
online = (navigator.onLine) ? 'yes' : 'no';
status = cacheStatusValues[cache.status];
type = e.type;
message = 'online: ' + online;
message += ', event: ' + type;
message += ', status: ' + status;
if (type == 'error' && navigator.onLine) {
message += ' (prolly a syntax error in manifest)';
}
alert(message);
document.getElementById("lblEvents").value = message;
}
window.applicationCache.addEventListener(
'updateready',
function() {
window.applicationCache.swapCache();
window.location.reload();
},
false
);
// end Script
</script>
</head>
<body>
<!--
Your body tags
-->
</body>
</html>
1
Appcache更新是原子。在下載清單中引用的所有文件之前,appcache不用於爲它們提供服務。如果您需要加載所有內容,請將所有內容放入清單中。使用腳本生成清單文件,而不是使用通配符。
相關問題
- 1. 有沒有辦法從客戶端編輯緩存清單
- 2. 有沒有辦法使用javascript清除緩存和Cookie?
- 3. 有沒有辦法清除IBM MobileFirst Platform服務器緩存?
- 4. 有沒有辦法繞過客戶端的清漆緩存?
- 5. 有沒有辦法緩存AdMob廣告?
- 6. 有沒有辦法強制TextMate緩存文件?
- 7. 有沒有辦法阻止ColdFusion 11緩存Fusebox circuit.xml.cfm文件?
- 8. Azure:有沒有辦法緩存/重用從Azure blob存儲下載的文件?
- 9. 有沒有辦法清除所有用戶的會話緩存鍵?
- 10. 緩存清單緩存網絡文件
- 11. 有沒有辦法在內存中緩存Spring <mvc:resources>文件?
- 12. django:有沒有辦法直接從內存中提供文件
- 13. 有沒有辦法顯示Linux緩衝區緩存未命中?
- 14. 有沒有辦法清除TextBox的文本沒有TextChanged射擊?
- 15. 文件沒有被緩存
- 16. 有沒有辦法告訴瀏覽器在加載頁面時清除緩存?
- 17. 有沒有辦法讓.mdb文件自己清空
- 18. 有沒有辦法用PHP清空會話文件?
- 19. 有沒有辦法在Java中「清理」accept頭文件?
- 20. 可可 - 有沒有辦法檢查NSURLConnection是否存在緩存?
- 21. 有沒有辦法來存儲/緩存InputStream?
- 22. 有沒有辦法清除CookieContainer?
- 23. 有沒有辦法清除uipickerview選擇?
- 24. 有沒有辦法清理Python包?
- 25. 有沒有辦法清除AS3/AIR
- 26. 有沒有辦法禁用磁盤文件的系統(unix)緩存?
- 27. 有沒有辦法從.java文件中獲取.class文件
- 28. 有沒有辦法從AliasMatch中免除文件/文件夾?
- 29. 有沒有什麼辦法來清除瀏覽器緩存使用js,至少我的域相關的文件?
- 30. 有沒有辦法從git的歷史中清除一些文件?
如果你只是讓瀏覽器緩存中的文件本身同樣的事情會發生,整個清單將被原子更新。 – robertc 2012-04-04 16:34:13