HTML5 applicationCache API を使用していますが、キャッシュされたページの更新が表示されません。マニフェスト ファイルに変更を加え、マニフェストがクライアントにキャッシュされていないことを確認し、キャッシュされたページの新しいバージョンがダウンロードされた後にページをリロードします (onupdateready イベントの後)。
applicationCache API が Chrome と FireFox でサポートされていることは知っていますが、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ます。