2

我正在研究 HTML5 中与应用程序缓存相关的工作。我在 body onload 中添加了 addCacheListeners()。这适用于移动 safari 和 chrome,但不适用于 android 浏览器。当涉及到 android 浏览器时,会触发 error 事件。

function addCacheListeners(){
        var appCache=window.applicationCache;
        if(appCache!== 'undefined'){
            alert("defined");
            appCache.addEventListener('checking', function(e){
                                      }, false);
            appCache.addEventListener('progress', function(e){
                                      }, false);
            appCache.addEventListener('updateready', function(e) {
                                        alert("update is ready");
                                      if (appCache.status == appCache.UPDATEREADY){
                                        appCache.swapCache();
                                        updateappInfo();
                                        }
                                      }, false);
            appCache.addEventListener('noupdate', function(e){
                                        updateappInfo();
                                        }, false);
            appCache.addEventListener('error', function(e){
                                        alert("error" + e.message);
                                      }, false);
            appCache.addEventListener('cached', function(e){
                                        alert("cached");
                                        updateappInfo();
                                      }, false);
        }

        if (appCache=== 'undefined'){alert("undefined");}
    }

对此有任何想法吗?谢谢一堆。

4

1 回答 1

2

此问题仅与 Android 浏览器有关,因为它不支持“.manifest”扩展名,而托管服务器中没有 MIME 类型配置。

因此,尝试将“.manifest”添加为 MIME 类型之一,但这失败了,因为它不支持作为已附加另一个引用的 MIME 类型。

添加“.appcache”或“apache”使其正常运行。

<mimeMapfileExtension=".apache"mimeType="text/cache-manifest" /> 

(来源:加载缓存清单文件

于 2013-09-25T13:41:18.323 回答