Оповещение о завершении кэша манифеста с помощью JavaScript

Как предупредить об успешном сообщении, когда cache.manifest загрузил все файлы в html5-приложении? (Предупреждение об успешном завершении загрузки кеша)!

Спасибо

2 ответа

Решение

Что ж, благодаря очень хорошо продуманной статье от Garden Gnome http://gardengnomesoftware.com/wiki/Cache_Manifest_File

Я нашел ответ. Все, что вам нужно сделать, это создать div, который будет отображать состояние кэша, добавив это на вашу страницу:

<div id="cachestatus" style="position:fixed;left: 2px;top: 2px; width: 150px;height:18px;color: #ff0000;padding: 1px 3px; opacity:1; z-index:100; font-family:Arial, Helvetica, sans-serif; opacity:0.2;"></div>

и сразу после этого div добавьте следующий java-скрипт:

<script type="text/javascript">

    var cacheStatus  = document.getElementById('cachestatus');
    cacheStatus.innerHTML="cache status";


    if (navigator.onLine) {
        window.applicationCache.addEventListener('updateready', function(e) {
            if (window.applicationCache.status == window.applicationCache.UPDATEREADY) {
                window.applicationCache.swapCache();
                cacheStatus.innerHTML="update ready!";
                if (confirm('A new version of this page is available. Reload?')) {
                    window.location.reload();
                }
            }
        }, false);
        window.applicationCache.addEventListener('cached', function(e) {cacheStatus.innerHTML="cache is ready!"; },false);
        window.applicationCache.addEventListener('noupdate', function(e) { cacheStatus.innerHTML="cache is up to date!"; },false);
        window.applicationCache.addEventListener('downloading', function(e) { cacheStatus.innerHTML="downloading..."; },false);
        window.applicationCache.addEventListener('error', function(e) { cacheStatus.innerHTML="error"; },false);
        window.applicationCache.update();
    } else {
        cacheStatus.innerHTML="offline";
    }
</script>  

Состояние кеша будет отображаться в DIV.

Вы можете привязать к различным событиям в window.applicationCacheобъект. Одним из них является updateready событие.

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

Некоторые другие статьи, на которые вы должны ссылаться при работе с AppCache:

Другие вопросы по тегам