Jquery Mobile预缓存页面

时间:2012-07-08 16:22:02

标签: jquery-mobile

在我的jQuery Mobile中,我有2个页面,index.html和test.html。索引页面中有一个<p>标记,其中包含一个类,因此当我的javascript上点击<p>标记时,它希望加载test.html。

但是当索引页面加载测试页面时,使用jQuery Mobile,它不在DOM中。因此,为了进入测试页面并替换test.html中div的内容,必须先将其加载到DOM中。所以这就是我在做的事情:

当点击try2时,我做一个加载页面将其放入DOM,然后我用新的html替换div,然后我切换到页面。 div的html永远不会改变。

$('.try2')
  .click(function(){
    $.mobile.loadPage( 'test.html', { showLoadMsg: false } );
    $('#mytest').html('i am here now').fadeIn('slow');
    $.mobile.changePage( "test.html", { transition: "slideup"} );
  });

1 个答案:

答案 0 :(得分:0)

使用指向第二页的链接上的data-prefetch属性预取页面。文档:http://jquerymobile.com/demos/1.1.0/docs/pages/page-cache.html

然后绑定到pageinit或pageshow事件以在第二页转换到视图之前更新div。

您当前的代码不起作用,因为事件处理程序中的前两行是异步的,因此要使用它们,您必须使用异步函数的回调函数。

<强>更新

如果您想预先缓存一个页面但没有直接链接到该页面,您可以随时创建一个虚拟链接并将其从视图中隐藏:

<a data-precache href="page2.html" style="display:none;"></a>