返回主页时如何在JQM中释放缓存?

时间:2013-03-27 07:32:26

标签: jquery jquery-mobile

加载页面后,我按下链接并加载特定页面。当我想回到索引页面时,问题就开始了 - 页面是"缓存"。它使用display:none或其他东西保留在DOM中,但我需要它每次都会加载为新的,如何做到这一点?我已经尝试过了:

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

1 个答案:

答案 0 :(得分: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/