如何在HTML5应用程序缓存错误事件上获取错误消息?

时间:2012-11-20 15:02:24

标签: html5 html5-appcache

在我的离线网络应用程序缓存期间,我收到一个完全有效的错误,该错误会显示在浏览器控制台中,如下所示:

Application Cache Error event: Manifest changed during update, scheduling retry

我可以添加一个监听器,以通知发生了错误。

window.applicationCache.addEventListener('error', function(e){
  //handle error here
}, false);

如何获取错误详细信息,在这种情况下“更新期间更改了清单,安排重试”?

2 个答案:

答案 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事件处理程序中捕获这么多细节。

enter image description here

最后我发现了问题。该错误不是由于丢失文件。应用程序缓存文件确实存在,但在Windows中,visual studio(2013)/ IIS无法识别扩展名.appcache。以下部分需要添加到web.config文件中。

<system.webServer>
  <staticContent>
    <mimeMap fileExtension=".appcache" mimeType="text/cache-manifest"/>
  </staticContent>
</system.webServer>