我的应用程序结构如下:
index.html / app。入口点包含在<head>...</head>
一个中央JS中,我根据哪个页面打开以及触发了哪个事件来执行自定义脚本:
这里是一个名为mylist.html的页面的快速示例,而不是在每个页面上都有它的脚本我只有一个更大的JS,它只需要一次加载到<head>
的索引中:
$(document).on('pageinit', '#pageMyList', function()
{
// init code
});
$(document).on('pageshow', '#pageMyList', function()
{
// run every time
});
关闭JQM ajax和东西不是一个选项,因为我需要那些转换并去jqm&#34; native&#34;。
问题:
我有一份pdf,doc,外部链接等等的列表,这些都是由浏览器处理的。例如:打开pdf我只是链接到它(window.location =&#39; pathToPdfFile&#39 ;;
这有效,但随后pdf阅读器开启(iphone等..)。现在回去将打开最后一页,但是index.html页面已经不在DOM了 - 而且我的整个JS都不可用。
顺便说一句:页面是通过ajax动态构建的。 当刷新任何页面(index.html)时,同样的事情就会丢失
答案 0 :(得分:0)
您可以专门告诉JQM将哪些页面加载到DOM(页面底部的see JQM docs),但要小心,因为如果您在DOM中加载太多,则会遇到设备特定的内存问题。
要缓存特定页面,您可以将data-dom-cache =“true”属性添加到页面的容器中(例如您的index.html
页面):
<div data-role="page" data-dom-cache="true">
要将所有以前访问过的页面保留在DOM中,请将页面插件中的domCache选项设置为一个单独的JS文件,该文件名为AFTER,您加载jQuery但是在加载jQuery mobile之前,如下所示:
$.mobile.page.prototype.options.domCache = true;
或者,您可以创建一个HTML5缓存清单文件,该文件将存储您在缓存中指定的所有文件,从而应用程序甚至可以在脱机时工作。这种方法有缺点,但这取决于您希望应用程序如何运作。以下是HTML5缓存清单上的文档以及操作方法:http://www.html5rocks.com/en/tutorials/appcache/beginner/