html 5 web应用缓存下载完整javascript警报?

html 5 web应用缓存下载完整javascript警报?,javascript,html,caching,web-applications,alert,Javascript,Html,Caching,Web Applications,Alert,我正在使用cache.manifest创建一个非常基本的离线web应用程序 但我有不到5mb的缓存下载要做。我想知道是否有一种方法可以在缓存下载完成时运行一次弹出警报 谢谢 我找到了这个调试器,它可以帮助我调试清单上是否遗漏了任何内容,不知道这是否有帮助 <script> var cacheStatusValues = []; cacheStatusValues[0] = 'uncached'; cacheStatusValues[1] = 'idle';

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

但我有不到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>

var cacheStatusValues=[];
cacheStatusValues[0]=“未缓存”;
cacheStatusValues[1]=“空闲”;
cacheStatusValues[2]=“正在检查”;
cacheStatusValues[3]=“正在下载”;
cacheStatusValues[4]=“updateready”;
cacheStatusValues[5]=“过时”;
var cache=window.applicationCache;
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('ocated',logEvent,false);
cache.addEventListener('progress',logEvent,false);
cache.addEventListener('updateready',logEvent,false);
函数logEvent(e){
在线变量、状态、类型、消息;
在线=(navigator.online)?“是”:“否”;
status=cacheStatusValues[cache.status];
类型=e.类型;
消息='联机:'+联机;
消息+=',事件:'+类型;
消息+=',状态:'+状态;
if(type='error'&&navigator.onLine){
消息+='(清单中通常存在语法错误)';
}
控制台日志(消息);
}
window.applicationCache.addEventListener(
“updateready”,
函数(){
window.applicationCache.swapCache();
log('已调用交换缓存');
}, 
假的
);
setInterval(函数(){cache.update()},10000);

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

window.applicationCache.addEventListener('cached', function() {
    // anything you need to do for success
    alert('I'm done!');
}, false );

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

window.applicationCache.addEventListener('cached', function() {
    // anything you need to do for success
    alert('I'm done!');
}, false );

很好,谢谢。虽然我的离线缓存不工作,但如果不让它先下载所有缓存,它就会崩溃。这让我知道它是什么时候完成的。很好,谢谢。虽然我的离线缓存不工作,但如果不让它先下载所有缓存,它就会崩溃。这让我知道这件事是什么时候完成的。。