Использование подстановочного знака в разделе FALLBACK файла манифеста Cache HTML5 - PullRequest
3 голосов
/ 16 сентября 2010

Как создать автономное веб-приложение с поддержкой, чтобы при посещении пользователем hxxp: // mywebsite / и в автономном режиме отображалось hxxp: // mywebsite / offline /.[На моем веб-сайте около 100 различных динамических страниц, поэтому я не могу позволить себе жестко закодировать их все в файле манифеста кэша]

Ответы [ 4 ]

6 голосов
/ 17 сентября 2010

Я ссылаюсь на «manifest.php» вместо «cache.manifest», тогда мой 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";

?>

Хеши файлов обновляют его, поэтому при изменении файлов манифест также изменяется. Надеюсь, это поможет:)

5 голосов
/ 25 ноября 2010
CACHE MANIFEST
CACHE:
/Offline/OfflineIndex.html

FALLBACK:
/ /Offline/OfflineIndex.html

NETWORK:
*

Это приведет к тому, что все ваши страницы по всему сайту будут перенаправлены в автономный режим, когда отключены Единственная проблема связана со страницей, которая объявляет манифест, поскольку эта страница всегда кэшируется. Это означает, что вы не можете объявить манифест на каждой странице, потому что каждая посещенная страница будет кэшироваться сама по себе, а не перенаправляться. Поэтому вы можете объявить свой манифест в другом html-файле (IE. Synchronize.html), а затем по умолчанию проверить, было ли ваше приложение доступно для автономного режима, сохранив значение cookie или значение localcache. Если нет перенаправления на synchronize.html с объявленным манифестом, задайте значение localcache и перенаправьте обратно на индекс.

OFFLINE AWESOMENESSSSSSSSSSS !!!!

1 голос
/ 16 сентября 2010

Невозможно использовать подстановочные знаки в манифесте кэша, по крайней мере, он не работает ни в одном текущем браузере, насколько я знаю.Альтернативный подход может состоять в том, чтобы динамически генерировать манифест кеша и позволить сценарию сгенерировать все эти резервные записи.

0 голосов
/ 26 июня 2012

Ссылка на ваш файл манифеста в невидимом фрейме на вашей странице индекса. Таким образом, ваша индексная страница не кэшируется, как обычно по умолчанию, и вы имеете полный контроль над вашими резервами ...

Нет необходимости в ненадежных файлах cookie или localStorage!

...