0

我正在使用 cache.manifest 创建一个非常基本的离线网络应用程序

但我只有不到 5mb 的缓存下载要做。而且我想知道是否有一种方法可以在缓存下载完成时运行一次弹出警报?

谢谢


我发现这个调试器可以帮助我调试我是否错过了清单上的任何内容,不知道这是否有帮助?

<script>

    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)';
        }
        console.log(message);
    }

    window.applicationCache.addEventListener(
        'updateready', 
        function(){
            window.applicationCache.swapCache();
            console.log('swap cache has been called');
        }, 
        false
    );

    setInterval(function(){cache.update()}, 10000);

</script>
4

1 回答 1

3

为了检查缓存下载何时完成,您可能正在寻找Cached事件。可以像上面那样检查它。

window.applicationCache.addEventListener('cached', function() {
    // anything you need to do for success
    alert('I'm done!');
}, false );
于 2014-09-03T05:04:53.813 回答