我正在使用离线HTML5功能来缓存我的网络应用程序。
它在某些时候工作正常,但在某些情况下它有奇怪的行为。我试图找出原因,以及如何解决它。
我正在使用Sammy,我认为这可能是相关的。
这是出错的时候,
之外,内容正在显示
如果在步骤#1中我浏览到http://domain/App/包括斜杠,那么一切正常。
在没有调用sammy路径的地方还有其他一些奇怪的状态,所以页面仍然是空白的,但我无法可靠地复制它。
...
更新:问题是上述步骤之前引发了问题。当我按照上述步骤进行操作时,它现在正在工作,因此很难确切说明发生了什么。我每次都从一致的状态开始,因为我是从VM中的快照开始的。
我的缓存清单看起来像这样,
CACHE MANIFEST
javascripts/jquery-1.4.2.js
javascripts/sammy/sammy.js
javascripts/json_store.js
javascripts/sammy/plugins/sammy.template.js
stylesheets/jsonstore.css
templates/item.template
templates/item_detail.template
images/1Large.jpg
images/1Small.jpg
images/2Large.jpg
images/2Small.jpg
images/3Large.jpg
images/3Small.jpg
images/4Large.jpg
images/4Small.jpg
index.html
答案 0 :(得分:0)
我也遇到了类似的问题。
我认为问题的一部分是jquery ajax错误解释了响应。我相信sammy正在使用jquery来进行ajax调用,这会导致错误。
这是我用来测试的代码片段(虽然不是解决方案)
this.get('#/', function (context) {
var uri = 'index.html';
// what i'm trying to call
context.partial(uri, {});// fails on some browsers after initial caching
// show's that jquery's ajax is misinterpreting
// the response
$.ajax({
url:uri,
success: function(data, textStatus, jqXHR){
alert('success')
alert(data);
},
error: function(jqXHR, textStatus, errorThrown){
alert('error')
if(jqXHR.status == 0){ // this is actually a success
alert(jqXHR.responseText);
}else{
alert('error code: ' + jqXHR.status) // probably a real error
}
}
});