在我的离线网络应用程序缓存期间,我收到一个完全有效的错误,该错误会显示在浏览器控制台中,如下所示:
Application Cache Error event: Manifest changed during update, scheduling retry
我可以添加一个监听器,以通知发生了错误。
window.applicationCache.addEventListener('error', function(e){
//handle error here
}, false);
如何获取错误详细信息,在这种情况下“更新期间更改了清单,安排重试”?
答案 0 :(得分:1)
您必须使用window.onerror。回调可以有三个参数:
Error message (string)
Url where error was raised (string)
Line number where error was raised (number)
检查以获取更多信息: https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.onerror
答案 1 :(得分:1)
今天仍是一个有效的问题。在我的示例中,我的错误日志不返回任何内容。我正在使用IE11。
<html xmlns="http://www.w3.org/1999/xhtml" manifest="icozum.appcache">
onChecking事件触发,但随后是onError,缓存状态= 0,这是nocached。
window.applicationCache.onchecking = function (e) {
var doc = document.getElementById("cachestatus");
if (doc != null) {
doc.innerHTML += "Checking the cache.\n";
}
}
然后是onError
window.applicationCache.onerror = function (e) {
var doc = document.getElementById("cachestatus");
if (doc != null) {
doc.innerHTML += "Cache error occurred." + applicationCache.status.toString() + "\n";
console.log(e);
console.log("test");
}
}
屏幕上的输出是
检查缓存。 发生缓存错误。
onError事件处理程序中没有关于错误的详细信息。我按F12得到了真正的错误。这是屏幕截图。有没有办法在onError事件处理程序中捕获这么多细节。
最后我发现了问题。该错误不是由于丢失文件。应用程序缓存文件确实存在,但在Windows中,visual studio(2013)/ IIS无法识别扩展名.appcache
。以下部分需要添加到web.config
文件中。
<system.webServer>
<staticContent>
<mimeMap fileExtension=".appcache" mimeType="text/cache-manifest"/>
</staticContent>
</system.webServer>