我正在使用 HTML5 applicationCache API,但在查看缓存页面的更新时遇到问题。我负责基本的工作——更改清单文件,确保清单没有缓存在客户端上,并在下载新版本的缓存页面后重新加载页面(在 onupdateready 事件之后)。
我知道 Chrome 和 FireFox 支持 applicationCache API,但我只能在 Opera 和 Safari 中看到所需的行为(更新清单后缓存页面的变化)。
因此,如何确保在 Chrome 和 FireFox 中可以看到页面的最新缓存版本?
这是我的 HTML/JavaScript (index.htm):
<!doctype html>
<html manifest="manifest.aspx">
<head>
<title>Log</title>
<script>
window.onload = function () {
if (window.applicationCache) {
var log = document.getElementById("log");
function logEvent(msg) {
log.innerHTML += "<li>" + msg + "</li>";
}
window.applicationCache.onchecking = function (e) {
logEvent("checking cache");
}
window.applicationCache.oncached = function (e) {
logEvent("cached");
}
window.applicationCache.onupdateready = function (e) {
logEvent("update ready");
logEvent("swapping cache");
applicationCache.swapCache();
}
window.applicationCache.onnoupdate = function (e) {
logEvent("no update");
}
window.applicationCache.onobsolete = function (e) {
logEvent("obsolete");
}
window.applicationCache.ondownloading = function (e) {
logEvent("downloading");
}
window.applicationCache.onerror = function (e) {
logEvent("error");
}
logEvent("window load");
}
}
</script>
</head>
<body>
<div>
<h1>Message Logger 15</h1>
<div id="eventLogContainer">
<h2>Event Log</h2>
<ul id="log"></ul>
</div>
</div>
</body>
</html>
这是我的清单(manifest.aspx):
CACHE MANIFEST
# version fifteen
CACHE:
index.htm
我的清单是一个 ASPX 文件,但Content-Type设置为text/cache-manifest
并且Encoding设置为utf-8
.