0

ページが読み込まれた後、リンクを押すと特定のページが読み込まれます。インデックスページに戻りたいときに問題が発生します-ページは「キャッシュ」されています。それは何かと一緒にDOMにとどまりますが、display: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;
});

もう1つ、多くの人がこの部分を理解していません。Mobileinitイベントは、次のようにjQueryMobileを初期化する前に初期化する必要があります。

<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 に答える