0

加载页面后,我按下链接并加载特定页面。当我想返回索引页面时,问题就开始了 - 该页面是“缓存的”。它保留在 DOMdisplay:none中,但我需要它每次都加载为新的,如何做到这一点?我已经尝试过:

  • jQuery.ajaxSetup({cache: false});
  • jQuery.mobile.ajaxLinksEnabled = false;
  • data-cache="false"
  • jQuery.mobile.page.prototype.options.domCache = false;
4

1 回答 1

2

这个特性还是有点问题,至少data-cache="false"

解决方案 1

要在应用级别禁用兑现,您需要在 mobileinit 事件中执行此操作,如下所示:

$(document).bind("mobileinit", function() {
    $.mobile.page.prototype.options.domCache = false;
});

还有一件事,很多人不理解这部分。必须在初始化 jQuery Mobile 之前初始化Mobileinit事件,如下所示:

<script src="jquery.js"></script>
<script>
    $(document).bind("mobileinit", function() {
        $.mobile.page.prototype.options.domCache = false;
    });
</script> <!-- Note your script before jqm -->
<script src="jquery-mobile.js"></script>

解决方案 2

有时您不想在应用程序级别禁用页面兑现,在这种情况下 data-cache="false" 应该可以工作,不幸的是它没有按预期工作。但可以这样强制:

$('div').on('pagehide', function(event, ui){
  var page = $(event.target);

  if(page.attr('data-cache') == 'false'){
    page.remove();
  };
});

这部分代码将在页面隐藏后将其删除。

这是一个现场 jsFiddle 示例:http: //jsfiddle.net/Gajotres/wgLzu/

于 2013-03-27T10:33:58.883 回答