Applicationcache不断引发“错误”事件

时间:2011-06-07 13:36:49

标签: javascript html5

我有一个引用清单文件的网页。页面上的javascript处理applicationCache上的“错误”事件。每次我导航到页面时,都会触发“错误”事件。

过去发生这种情况时,一直是因为清单中列出的某个文件无法加载。我已经单独检查了每一个,它们都加载了。

我写这个是为了在iOS上运行所以我只关心它是否适用于Safari。我在Windows和iPod 4.2.1上使用Safari 5.0.2尝试过它并得到了相同的结果。

主页面(default.aspx)

<!DOCTYPE HTML>

<html manifest="manifest.aspx">
<head>
...

manifest.aspx

CACHE MANIFEST  
# Cache manifest version 99  
default.aspx  
default.css  
scripts/jquery-json.js  
scripts/jquery-min.js  
scripts/app.js
images/button.png
images/error.png
app/assessment.aspx
app/discharge.aspx
app/episode.aspx
app/guide.aspx
app/notes.aspx
app/note check.aspx
app/supplement.aspx
app/warning.aspx

app.js

...
window.applicationCache.addEventListener("progress", progressCache, false);
window.applicationCache.addEventListener("cached", doneCache, false);
window.applicationCache.addEventListener("noupdate", noupdateCache, false);
window.applicationCache.addEventListener("updateready", updateCache, false);
window.applicationCache.addEventListener("error", errorCache, false);
window.applicationCache.addEventListener("obsolete", obsoleteCache, false);

function errorCache() {
    if (!navigator.onLine) {
       console.log("You're not online");
    } else {
       console.log("An error has occurred");
    }
}
...

我尝试在errorCache函数中添加一个参数,但它似乎没有提供更多信息。

function errorCache(e) {

1 个答案:

答案 0 :(得分:1)

事实证明,Safari不喜欢清单中包含空格的文件名。

重新命名后

app/note check.aspx

app/notecheck.aspx

它开始工作了。