レコード処理モバイルブラウザクリックしてページを更新しない
10430 ワード
一部のブラウザでは、戻るボタンはキャッシュを直接使用し、jsコードは実行されません.たとえば、コミット時にボタンをloading状態に設定し、コミットに成功した後にボタンを処理しなかった場合、戻るボタンがloading状態のままであることは気まずいです.
理由:一部のブラウザでは、後退時にonloadイベントはトリガーされません.これはHTML 5世代ブラウザの新しい特性の一つであるBack-Forward Cache(bfcacheと略称)です.
bfcacheとは
「JavaScript Advanced Program」では、bfcacheについて説明しています.
bfcache、すなわちback-forward cacheは、「往復キャッシュ」と呼ばれ、ブラウザの「後退」ボタンと「前進」ボタンを使用すると、ページの変換速度を速めることができます.このキャッシュはページデータだけでなく
DOMとJSの状態も保存されており、実際にはページ全体をメモリに保存している.ページがbfcacheにある場合、再びページを開くとonloadイベントはトリガーされません.
pageshowイベントこのイベントは、bfcacheからのページであるかどうかにかかわらず、ページ表示時にトリガーされます.再ロードされたページでは、pageshowはloadイベントがトリガーされた後にトリガーされます.
bfcacheのページではpageshowがページ状態が完全に回復した瞬間にトリガーされます.
pagehideイベントブラウザがページをアンインストールするとトリガーされ、unloadイベントの前にトリガーされます.
persistedプロパティpageshowイベントとpagehideイベントのeventオブジェクトには、persistedというブール値プロパティも含まれます.
pageshowイベントの場合、ページがbfcacheからロードされている場合、このプロパティの値はtrueです.そうでなければ、この属性の値はfalseです.pagehideイベントの場合、ページがアンインストール後にbfcacheに保存されている場合、このプロパティの値はtrueです.そうでなければ、この属性の値はfalseです.ブラウザによっては、現在のウィンドウの「開く」履歴の前のページの表現が統一されず、ブラウザの実装やページ自体の設定に関係します.
ソリューションFirefoxの開発者ドキュメントには、次のようなアイデアが用意されています.
ページはunloadまたはbeforeunloadイベントを傍受しています.ページには「cache-control:no-store」が設定.HTTPS同時ページは、「Cache-Control:no-cache」「Pragma:no-cache」設定要求ヘッダ「Expires:0」または「Expires」の値が「Date」の前の値(Cache-Control:max-age=」も設定されていない限り)を満たすのに十分です.ページは、ユーザーが後退したときに完全にロードされていないか、XMLHttpRequestなどのネットワーク要求があります.ページはIndexedDB操作中です.最上位のページパッケージにはframeが含まれており、これらのframeはここに列挙されているいずれかの理由でキャッシュできません.ページは1つのframe内にあり、ユーザーはこのframe内で新しいページにジャンプし、ここでキャッシュされるのは新しくロードされたページJSがpageshowイベントを傍受してbfcacheにページが入ることを阻止する(個人的にはこの方法を使用する)
Safari、UC、qqブラウザのテストに合格しました.しかし、UC、qqブラウザはbfcacheのページを先にフラッシュします.pageshowはloadイベントがトリガーされた後にトリガーされるからです.browserは依然として赤色を保持しています.browserが前のページに戻ったときにイベントがトリガーされないからだと思います.JSはpagehideイベントを傍受してページがbfcacheに入ることを阻止する ASMシリーズ6 TreeApiによるクラスメンバーの追加と削除
lijingyao8206
jvm ダイナミックエージェント ASM バイトコード技術 TreeAPI
Springmvc-パーミッション設計
bee1314
spring Web jsp
アルゴリズムコンテスト入門経典(第2版)第2章練習問題
CrazyMizzz
c アルゴリズム#アルゴリズム#
struts 2でjspが自動的にActionにジャンプ
麦畑の設計者
jsp webxml struts2 じどうジャンプ
php操作webserviceインスタンス
IT独行者
PHP webservice
WindowsでVagrantを使用してlinuxシステムをインストールする
_wy_
windows vagrant
linuxのファイル所有者およびユーザーグループ(chownおよびchgrp)の変更
むりょう
c linux chgrp chown
linux下パッケージツール
矮蛋
linux
アルファベットで分類:
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z その他
トップページ -
私たちについて -
構内検索 -
Sitemap -
権利侵害苦情
著作権すべてのIT知識ベースCopyRight© 2000-2050 IT知識ベースIT 610.com , All Rights Reserved.
京ICP備09083238号
理由:一部のブラウザでは、後退時にonloadイベントはトリガーされません.これはHTML 5世代ブラウザの新しい特性の一つであるBack-Forward Cache(bfcacheと略称)です.
bfcacheとは
「JavaScript Advanced Program」では、bfcacheについて説明しています.
bfcache、すなわちback-forward cacheは、「往復キャッシュ」と呼ばれ、ブラウザの「後退」ボタンと「前進」ボタンを使用すると、ページの変換速度を速めることができます.このキャッシュはページデータだけでなく
DOMとJSの状態も保存されており、実際にはページ全体をメモリに保存している.ページがbfcacheにある場合、再びページを開くとonloadイベントはトリガーされません.
pageshowイベントこのイベントは、bfcacheからのページであるかどうかにかかわらず、ページ表示時にトリガーされます.再ロードされたページでは、pageshowはloadイベントがトリガーされた後にトリガーされます.
bfcacheのページではpageshowがページ状態が完全に回復した瞬間にトリガーされます.
pagehideイベントブラウザがページをアンインストールするとトリガーされ、unloadイベントの前にトリガーされます.
persistedプロパティpageshowイベントとpagehideイベントのeventオブジェクトには、persistedというブール値プロパティも含まれます.
pageshowイベントの場合、ページがbfcacheからロードされている場合、このプロパティの値はtrueです.そうでなければ、この属性の値はfalseです.pagehideイベントの場合、ページがアンインストール後にbfcacheに保存されている場合、このプロパティの値はtrueです.そうでなければ、この属性の値はfalseです.ブラウザによっては、現在のウィンドウの「開く」履歴の前のページの表現が統一されず、ブラウザの実装やページ自体の設定に関係します.
ソリューションFirefoxの開発者ドキュメントには、次のようなアイデアが用意されています.
ページはunloadまたはbeforeunloadイベントを傍受しています.ページには「cache-control:no-store」が設定.HTTPS同時ページは、「Cache-Control:no-cache」「Pragma:no-cache」設定要求ヘッダ「Expires:0」または「Expires」の値が「Date」の前の値(Cache-Control:max-age=」も設定されていない限り)を満たすのに十分です.ページは、ユーザーが後退したときに完全にロードされていないか、XMLHttpRequestなどのネットワーク要求があります.ページはIndexedDB操作中です.最上位のページパッケージにはframeが含まれており、これらのframeはここに列挙されているいずれかの理由でキャッシュできません.ページは1つのframe内にあり、ユーザーはこのframe内で新しいページにジャンプし、ここでキャッシュされるのは新しくロードされたページJSがpageshowイベントを傍受してbfcacheにページが入ることを阻止する(個人的にはこの方法を使用する)
window.addEventListener('pageshow', function( e ){
if (e.persisted) {
window.location.reload()
}
})
Safari、UC、qqブラウザのテストに合格しました.しかし、UC、qqブラウザはbfcacheのページを先にフラッシュします.pageshowはloadイベントがトリガーされた後にトリガーされるからです.browserは依然として赤色を保持しています.browserが前のページに戻ったときにイベントがトリガーされないからだと思います.JSはpagehideイベントを傍受してページがbfcacheに入ることを阻止する
window.addEventListener('pagehide', function(e) {
var $body = $(document.body);
$body.children().remove();
// , script
setTimeout(function() {
$body.append("window.location.reload();<\/script>"</span>);
});
});</code></pre>
<p>Safari、UC、qq 。browser , browser 。</p>
<p> http://blog.csdn.net/playboyanta123/article/details/70313112 </p>
</div>
</div>
</div>
</div>
</div>
<!--PC WAP -->
<div id="SOHUCS" sid="1282710712510070784"></div>
<script type="text/javascript" src="/views/front/js/chanyan.js">
興味があるかもしれませんlijingyao8206
jvm ダイナミックエージェント ASM バイトコード技術 TreeAPI
bee1314
spring Web jsp
CrazyMizzz
c アルゴリズム#アルゴリズム#
麦畑の設計者
jsp webxml struts2 じどうジャンプ
IT独行者
PHP webservice
_wy_
windows vagrant
むりょう
c linux chgrp chown
矮蛋
linux
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z その他
トップページ -
私たちについて -
構内検索 -
Sitemap -
権利侵害苦情
著作権すべてのIT知識ベースCopyRight© 2000-2050 IT知識ベースIT 610.com , All Rights Reserved.
京ICP備09083238号