2

オフライン アプリがどのブラウザーにもキャッシュされないのはなぜですか?

ここで簡単なテストを作成しました: http://design.aqueo.us/test/appcache/

1 つの html ファイルとマニフェストの 2 つのファイルのみです。(html ファイルには、キャッシュ ステータスを表示するための JavaScript が含まれています。) コンソール ログを確認すると、常に「キャッシュ ステータス: キャッシュされていません」と表示されます。また、chrome://appcache-internals/ (Google Chrome の場合) にもサイトは表示されません。私の知る限り、ブラウザはマニフェスト ファイルをフェッチすることさえありません。複数のブラウザでこれを試しました。

マニフェストは次のとおりです。

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>
4

1 に答える 1

9

信じられない!すべてのデバッグと髪の毛の引き抜きの後、HTML 要素の代わりに HEAD 要素にマニフェスト属性がありました! すべての愚かな間違いのうち!

問題のリンクが期待どおりに機能するようになりました。

更新:わかりやすくするために、HTML ファイルの上部は次のようになります。

<!doctype html>
<html manifest="offline.appcache">
<head>
于 2012-07-09T01:12:24.113 に答える