3

ユーザーが hxxp://mywebsite/ にアクセスし、オフラインのときに hxxp://mywebsite/offline/ が表示されるように、オフライン対応の Web アプリケーションを作成する方法。[私の Web サイトには約 100 の異なる動的ページがあるため、それらすべてをキャッシュ マニフェスト ファイルにハードコーディングする余裕はありません]

4

4 に答える 4

7

「cache.manifest」の代わりに「manifest.php」を参照すると、php ファイルは次のようになります。

<?php
    header('Content-Type: text/cache-manifest');
    echo "CACHE MANIFEST\n";

    $hashes = "";

    $dir = new RecursiveDirectoryIterator(".");
    foreach(new RecursiveIteratorIterator($dir) as $file) {
        $info = pathinfo($file);
        if ($file->IsFile() &&
            $file != "./manifest.php" &&
            substr($file->getFilename(), 0, 1) != ".")
        {
            echo $file . "\n";
            $hashes .= md5_file($file);
        }
    }

    echo "# Hash: " . md5($hashes) . "\n";

?>

ファイル ハッシュはファイルを最新の状態に保つため、ファイルが変更されるとマニフェストも変更されます。それが役立つことを願っています:)

于 2010-09-16T20:23:32.853 に答える
5
CACHE MANIFEST
CACHE:
/Offline/OfflineIndex.html

FALLBACK:
/ /Offline/OfflineIndex.html

NETWORK:
*

これにより、サイト全体のすべてのページがオフライン時にオフラインにリダイレクトされます。唯一の問題は、そのページが常にキャッシュされるため、マニフェストを宣言するページにあります。これは、訪問したすべてのページがそれ自体でキャッシュされ、リダイレクトされないため、すべてのページでマニフェストを宣言できないことを意味します。したがって、別のhtmlファイル(IE。Synchronize.html)でマニフェストを宣言し、デフォルトからCookieまたはlocalcache値を保存してアプリがオフラインで使用できるようになっているかどうかを確認できます。マニフェストが宣言されたsynchronize.htmlにリダイレクトしない場合は、localcache値を設定し、インデックスにリダイレクトします。

オフラインAWESOMENESSSSSSSSSSS!!!!

于 2010-11-25T14:54:22.860 に答える
1

キャッシュ マニフェストでワイルドカードを使用することはできません。少なくとも、私の知る限り、現在のブラウザでは機能しません。別の方法として、キャッシュ マニフェストを動的に生成し、スクリプトでこれらすべてのフォールバック エントリを生成することができます。

于 2010-09-16T17:45:13.660 に答える
0

インデックス ページの非表示の iframe でマニフェスト ファイルを参照します。そうすれば、通常はデフォルトでインデックスページがキャッシュされず、フォールバックを完全に制御できます...

信頼できない Cookie や localStorage は必要ありません。

于 2012-06-26T09:26:03.460 に答える