html 5 web应用缓存下载完整javascript警报?
我正在使用cache.manifest创建一个非常基本的离线web应用程序 但我有不到5mb的缓存下载要做。我想知道是否有一种方法可以在缓存下载完成时运行一次弹出警报 谢谢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';
我找到了这个调试器,它可以帮助我调试清单上是否遗漏了任何内容,不知道这是否有帮助
<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 );
很好,谢谢。虽然我的离线缓存不工作,但如果不让它先下载所有缓存,它就会崩溃。这让我知道它是什么时候完成的。很好,谢谢。虽然我的离线缓存不工作,但如果不让它先下载所有缓存,它就会崩溃。这让我知道这件事是什么时候完成的。。