Есть ли способ загрузить все файлы и кеш по одному из файла манифеста кеша - PullRequest
1 голос
/ 15 марта 2012

по умолчанию html5-кеш работает так, как файл / page / js / css / image, который упоминается в манифесте, кэшируется при первой загрузке, но я требовал, чтобы все файлы сразу кэшировались с моей домашней страницы ....

Ответы [ 2 ]

1 голос
/ 15 марта 2012

Обновления Appcache являются атомарными.Пока все файлы, на которые есть ссылки в манифесте, не загружены, appcache не используется для их обслуживания.Если вам нужно все загрузить, поместите все в манифест.Используйте сценарий для создания файла манифеста вместо использования подстановочных знаков.

0 голосов
/ 19 марта 2012

Я получил скрипт для кэширования сразу всех файлов, которые вы упомянули в файле манифеста.

<!DOCTYPE html>
<html manifest='../cache.manifest'>// reference path of your manifest file
<head>

<title>Untitled Document</title>
<script type="text/javascript">
    var cacheStatusValues = [];
    cacheStatusValues[0] = 'uncached';
    cacheStatusValues[1] = 'idle';
    cacheStatusValues[2] = 'checking';
    cacheStatusValues[3] = 'downloading';
    cacheStatusValues[4] = 'updateready';
    cacheStatusValues[5] = 'obsolete';

    var cache = window.applicationCache;
    cache.addEventListener('cached', logEvent, false);
    cache.addEventListener('checking', logEvent, false);
    cache.addEventListener('downloading', logEvent, false);
    cache.addEventListener('error', logEvent, false);
    cache.addEventListener('noupdate', logEvent, false);
    cache.addEventListener('obsolete', logEvent, false);
    cache.addEventListener('progress', logEvent, false);
    cache.addEventListener('updateready', logEvent, false);

    function logEvent(e) {

        var online, status, type, message;
        online = (navigator.onLine) ? 'yes' : 'no';
        status = cacheStatusValues[cache.status];
        type = e.type;
        message = 'online: ' + online;
        message += ', event: ' + type;
        message += ', status: ' + status;
        if (type == 'error' && navigator.onLine) {
            message += ' (prolly a syntax error in manifest)';
        }
        alert(message);
        document.getElementById("lblEvents").value = message;

    }

        window.applicationCache.addEventListener(
        'updateready',
        function () {
            window.applicationCache.swapCache();
    window.location.reload();
        },
        false
      );
        // end Script 
 </script>
</head>

<body>
<!--
 Your body tags
-->
</body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...