BLOGブログ

Safariブラウザバック時のキャッシュ削除

takefushi / 2021.04.16

Web制作・ホームページ制作

iOS Safariのブラウザバック時、ページ遷移前のキャッシュが残ってしまい、JS動作などもそのままになってしまう問題が発生しましたので、その対処法をご紹介します。

とてもシンプルでJavascriptで以下を追加するだけです。

window.onpageshow = function(event) {
	if (event.persisted) {
		 window.location.reload();
	}
};

window.onpageshow は、以下の条件ときにイベントが発生します。

  • 最初にページを読み込んだとき
  • 同じウィンドウまたはタブの中で、他のページからそのページへ移動してきたとき
  • モバイル OS で凍結されたページを復元したとき
  • ブラウザーの進む、戻るボタンを利用してこのページに戻ったとき

※ 参考 MDN Web Docs - Window: pageshow イベント

event.persisted はキャッシュ有効時、window.location.reload() はブラウザリロードです。

これによって、Safari のブラウザバック時、キャッシュによって実行された JS がある場合は、ブラウザリロードをして再描画してくれます。

ぜひお試しあれ。

GoogleのAI検索で「Cruwのブログ」を優先表示しませんか?

Googleの最新機能では、お気に入りのサイトを「優先するソース」として登録できるようになりました。登録していただくと、GoogleのAIモードやAI Overviewsが回答をつくる際、当サイトの情報を優先的に参照・表示してくれるようになります。

これからも地域ビジネスに役立つ最新のWebマーケティング情報を発信していきますので、ぜひ優先ソースへのご登録をお願いいたします!