【问题标题】:jQuery mobile loading page again on hitting backjQuery 移动加载页面再次回击
【发布时间】:2014-08-22 17:26:14
【问题描述】:

我有以下三个 HTML 文件

snapshot http://maroonlemoon.com/egather/screen.png

当用户登录索引页面时,我使用以下事件导航到页面 Home.html

  $( ":mobile-pagecontainer" ).pagecontainer( "change","home.html", {
                  transition: "slide",
                  reverse: false,
                  changeHash: true,
            });

Home.html 页面使用事件加载所有页面内容(如屏幕截图所示的列表视图)

$(document).one('pageinit',function(){  
     ShowHomePage(); //This function binds all page buttons and also 
                       retrieves the list through an AJAX call
});

上述事件调用和 ShowHomePage 都在一个 javascript 文件中找到,该文件在 Home.html 的 div data-role="page" 的结束标记之前被调用

<script src="js/page.js"></script>

当用户点击任何列表项时,我使用 Index.html 中使用的相同事件将他们导航到外部 Activity.html 页面

$( ":mobile-pagecontainer" ).pagecontainer( "change","activity.html", {
                          transition: "slide",
                          reverse: false,
                          changeHash: true,
                          reload:false
                        });

Activity.html 中的后退箭头具有 data-transition="slide" data-direction="reverse" data-rel="back" 属性,可以很好地触发返回 Home.html,但是整个页面会得到再次完全重新加载,我只是希望它返回到前一页状态而不重新加载和重新绑定所有内容。对我来说奇怪的是,如果我从 Home.html 而不是 Index.html 开始流程(我的意思是如果我没有登录并直接转到 home.html),然后点击一个列表项并再次返回,页面完全按照我想要的方式工作(不再重新加载)。

任何想法如何克服这个问题?提前致谢。

【问题讨论】:

    标签: javascript jquery html jquery-mobile


    【解决方案1】:

    我忽略了 data-dom-cache="true" on

     <div data-role="page" id="homepage" data-dom-cache="true">
    

    【讨论】:

    • 单页模型中,除了第一页加载外,外部页面不保存在 DOM 中。一旦您离开页面,JQM 就会将其删除。因此,当您导航回同一页面时,它会 reload 并且所有绑定都会重复。 jqmtricks.files.wordpress.com/2014/03/single-page.png
    • 是的,我知道@Omar 我只是忘了启用缓存。现在工作正常。感谢您的流程图顺便说一句:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-29
    • 1970-01-01
    • 2013-02-13
    • 2011-11-02
    • 1970-01-01
    • 2013-10-13
    • 1970-01-01
    相关资源
    最近更新 更多