为什么我的离线应用没有被任何浏览器缓存?
我在这里创建了一个简化的测试:http://design.aqueo.us/test/appcache/
它只有两个文件:一个html文件加上清单。 (html文件包含一些javascript来显示缓存状态。)检查控制台日志,你会看到它总是显示“缓存状态:未缓存”。此外,chrome:// appcache-internals /(在谷歌浏览器中)不会列出该网站。据我所知,浏览器甚至从不提取清单文件。我在多个浏览器中尝试过这个。
这是清单:
CACHE MANIFEST
# .
这是HTML:
<!doctype html>
<html>
<head manifest="offline.appcache">
<meta charset="utf-8">
<title>Appcache test</title>
<script>
(function() {
var webappCache = window.applicationCache;
function loaded()
{
var h1El = document.querySelector("h1");
var connectionStatus = ((navigator.onLine) ? 'online' : 'offline');
h1El.textContent = h1El.textContent + " - currently: " + connectionStatus;
switch(webappCache.status)
{
case 0:
console.log("Cache status: Uncached");
break;
case 1:
console.log("Cache status: Idle");
break;
case 2:
console.log("Cache status: Checking");
break;
case 3:
console.log("Cache status: Downloading");
break;
case 4:
console.log("Cache status: Updateready");
break;
case 5:
console.log("Cache status: Obsolete");
break;
}
}
function updateCache()
{
webappCache.swapCache();
console.log("Cache has been updated due to a change found in the manifest");
}
function errorCache()
{
console.log("You're either offline or something has gone horribly wrong.");
}
window.addEventListener("load", loaded, false);
webappCache.addEventListener("updateready", updateCache, false);
webappCache.addEventListener("error", errorCache, false);
})();
</script>
</head>
<body>
<h1>Appcache Test</h1>
</body>
</html>
答案 0 :(得分:9)
难以置信!在完成所有调试和拔出之后,我在HEAD元素上使用了manifest属性而不是HTML元素!在所有愚蠢的错误中!
有问题的链接现在按预期工作。
更新:为了明白这一点,HTML文件的顶部应该是这样的:
<!doctype html>
<html manifest="offline.appcache">
<head>