2013-03-28 77 views
1

我有一个应用程序使用cache.manifest在本地缓存HTML内容。当我使用Jquery .load()检索这些内容时,不会从应用程序缓存中检索内容,如果设备处于脱机状态,则调用将失败。Jquery Mobile .load()不从应用程序缓存检索内容

cache.manifest中指定的文件正在加载,我可以看到,当我在网站中加载的查尔斯。

当离线时,我可以在浏览器中输入缓存的文件URL,它显示它很好,只是没有使用.load(),所以我确信cache.manifest正在加载所有东西。

我的问题是,如何使用jquery或纯JS加载HTML页面,并确保它在设备处于脱机状态时使用应用程序缓存?

CACHE MANIFEST 
/m2/docs/e5a133db912860d8ec124cce9caa78d1/Q00X03.htm 
/m2/docs/e5a133db912860d8ec124cce9caa78d1/M00X03.htm 
/m2/docs/e5a133db912860d8ec124cce9caa78d1/Q97X01.htm 
/m2/docs/e5a133db912860d8ec124cce9caa78d1/M97X01.htm 
/m2/style.css 
/m2/docs/e5a133db912860d8ec124cce9caa78d1/index.htm 
/m2/docs/e5a133db912860d8ec124cce9caa78d1/doc.json 

然后调用这样的:

$("#docu").load("/m2/docs/e5a133db912860d8ec124cce9caa78d1/M97X01.htm"); 

任何帮助表示赞赏。

+0

这不可能是那么模糊。任何人? – 2013-03-28 09:05:39

回答

1

我能得到它的工作这样做(相当混乱):

在我的应用我做了一个隐藏的iFrame:

<div style="display:none;">   
<iframe id="dummyContent"></iframe> 
</div> 

安装此iFrame的侦听器读出身体,将其插入我的显示元素随时加载:

$("#dummyContent").load(function(){ 
    var $con = $("#dummyContent").contents().find("body"); 
    $("#docu").html($con); // docu is my display div 
}); 

设置内容检索按钮单击处理程序的IFRAME的src设置为我的内容: 按预期方式从应用程序缓存加载此应用程序。

$("#questionButton").click(function(ev) { 
    $("#dummyContent").attr("src","/m2/docs/e5a133db912860d8ec124cce9caa78d1/M97X01.htm"); 
}); 

我将不胜感激,如果任何人有不同的方法,也许不是使用iframe。这个解决方案是正确的使用表来对齐页面内容...

+1

在这里,我再次,自言自语...... – 2013-03-28 15:56:01