下载所有文件和缓存,默认情况下,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. 有没有办法使用javascript清除缓存和Cookie?
- 2. 有没有办法绕过客户端的清漆缓存?
- 3. Azure:有没有办法缓存/重用从Azure blob存储下载的文件?
- 4. 有没有办法阻止ColdFusion 11缓存Fusebox circuit.xml.cfm文件?
- 5. 有没有办法强制TextMate缓存文件?
- 6. 有没有办法清除所有用户的会话缓存键?
- 7. django:有没有办法直接从内存中提供文件
- 8. 有没有办法告诉浏览器在加载页面时清除缓存?
- 9. 有没有办法用PHP清空会话文件?
- 10. 有没有办法清理Python包?
- 11. 有没有办法清除AS3/AIR
- 12. 有没有办法来存储/缓存InputStream?
- 13. 可可 - 有没有办法检查NSURLConnection是否存在缓存?
- 14. 有没有办法从.java文件中获取.class文件
- 15. 有没有办法从AliasMatch中免除文件/文件夹?
- 16. 有没有什么办法来清除浏览器缓存使用js,至少我的域相关的文件?
- 17. 有没有办法从git的历史中清除一些文件?
- 18. 有没有办法从TrueCrypt磁盘读取文件到内存中的文件?
- 19. 有没有办法从APP
- 20. iOS - 有没有办法触发内存清理?
- 21. 有没有办法测试CSS文件?
- 22. 有没有办法调试plist文件?
- 23. 有没有办法区分C++文件?
- 24. 有没有办法解析应用程序清单?
- 25. 有没有办法在php中清除表单数据?
- 26. 有没有办法检查代码的清单许可?
- 27. 手动添加项目到缓存时有没有办法使用使用缓存配置文件?
- 28. 有没有办法告诉Drupal不要缓存特定页面?
- 29. 有没有办法强制变量保持缓存在x86(/ _ 64)?
- 30. 有没有办法缓存Jsoup获取请求?
如果你只是让浏览器缓存中的文件本身同样的事情会发生,整个清单将被原子更新。 – robertc 2012-04-04 16:34:13