3

ブラウザにページが表示されるたびにコードを起動したいのですが:

$(function() {
   console.log('got ready event!');
});

このイベントは、ブラウザがページをダウンロードしたときにのみ発生します。別のページに移動してから戻ると、上記のスニペットは起動されません。ページが表示されているときにサーバーがリクエストを受信しないため、ブラウザはページの状態をキャッシュしているようです。そのため、ページに戻ると、イベントを発生させずにキャッシュされたページの状態を復元しますready

ページがキャッシュされているかどうかに関係なく、ページが表示されるたびに聞くことができるイベントはありますか?

4

2 に答える 2

3

これを試してください。ディレクティブcashe-control:no-casheは、キャッシュされた情報を使用してはならず、代わりにリクエストをオリジンサーバーに転送する必要があることを示します。

<meta http-equiv="cashe-control" content="no-cashe">


pageshowイベント を試す:

このイベントは、ページが読み込まれるたびに発生することを除いて、loadイベントと同じように機能します。ページが最初に読み込まれるとき、pageshowイベントはloadイベントの発生直後に発生します。pageshowイベントは、初期ロード時にfalseに設定されるpersistedと呼ばれるブールプロパティを使用します。初期ロードでない場合はtrueに設定されます(つまり、ページがキャッシュされる場合はtrueに設定されます)。

$(document).bind('pageshow', function(){

})
于 2012-06-10T03:04:34.673 に答える
2

私はこれが古いケースであることを知っていますが、私もこれに苦労しました。「pageshow」はこの仕事をすることができますが、このイベントをドキュメントではなくウィンドウにバインドする必要があるようです。したがって、コードは次のようになります。

$(window).on('pageshow', function(){ alert('page show'); });
于 2016-02-24T17:14:57.937 に答える