広告

Android版 Chromeでスーパーリロードを強制的に行うには

プログラミング全般

Webサイト開発などを行っている際、ソースコードに変更を加えて内容を再確認することがよくあると思いますが、この時にひと手間がかかるのが「キャッシュ」の問題です。

通常WebブラウザはWebサイトの表示最適化のため、過去にアクセスしたWebサイトの情報を一時キャッシュとして保管しており、これらの情報を再利用することでより快適なウェブブラウズを実現しています。

一方、Web開発などを行っている際、このキャッシュによって変更したばかりのCSSファイルやJavaScriptの内容が反映されないことなどがあるため、開発者にとっては見落としがちで悩みのタネとなることも多くあります。

キャッシュ消去とハードリロードを行う「スーパーリロード」

デスクトップPCのGoogle Chrome環境であれば、「F12」キーもしくは「Ctrl + Shift + I」キーを押してデベロッパーツールが表示された状態にして「ページの再読み込み」ボタンを長押しし、表示されたメニューの「キャッシュの消去とハード再読み込み」をクリックすることで、キャッシュをクリアしたうえでページのすべてのリソースの再読み込みを行うことができます。

こちらは「スーパーリロード」とも呼ばれる機能で開発者であればおなじみの機能だと思いますが、スマホのブラウザではどのようにすればよいのでしょうか。

Android版 Chromeでスーパーリロードを行う(代替案)

スマホ向けサイトを構築している時などでAndroidの実機を使ってテストする際に、キャッシュされたファイルを再利用させないようにブラウザで強制的にリソースを再読み込みさせたい場合があるかと思います。

結論から言うとAndroid版Chromeに「スーパーリロード」機能は現状実装されていないようですので、代わりの方法を使って実現する必要があります。

方法1:JavaScriptを使う

ページを強制的に再読み込みするJavaScriptを使ってAndroid版Chromeでハードリロードを行うことができます。以下の1行をアドレスバーに入力して読み込みます。

javascript:location.reload(true)

ただ、こちらの方法はいわゆるハードリロードと同様の挙動のようで、PC版Chromeでの「Ctrl + F5」キーを押した状態と同じような動作となっているようです。外部ファイルの読み込みなどについては完全にリフレッシュされないこともあるようでした。

ただ、多くの場合はこの方法で再読み込みできるため、上記の1行をクリップボードツールなどに登録しておくと便利です。

方法2:シークレットモードを使う

Google Chromeではログインセッションや入力情報などを記録しないシークレットモードがあります。このシークレットモードは通常モードで使用しているキャッシュ自体が無効になるため、スーパーリロードと同じように最新の情報をサーバーから取得することができます。

シークレットモードは終了するたびにキャッシュを含めた情報がすべて破棄されるため、再度サイトを確認したいときは改めてシークレッドウィンドウを開けばOKです。

直接スーパーリロードを行うことはできませんでしたが、この方法であればそれほど煩わしさもなくローカルキャッシュの影響を回避することができるため個人的にはこちらの方法がお勧めです。

注意点として、キャッシュデータをクリアするには一度すべてのシークレットウィンドウを閉じる必要があります。シークレットウィンドウがひとつでも残っている状態で新しいシークレットウィンドウを開いた場合はキャッシュが削除されません

変わらなければ恐らくサーバー側のキャッシュ

前述の方法、特にシークレットモードでアクセスした場合で最新の情報が表示されない場合、原因はChromeのキャッシュではない可能性が高いと思われます。

Webサーバーでも負荷軽減や高速化のためにデータをキャッシュすることがありますので、サーバーの設定などを確認してみてください。

Chromeの「閲覧履歴データの削除」は危険!

基本的に上記の2つの方法でWebページの内容が最新のものにならない場合、原因はAndroid版Chrome以外にあるのではないかと考えられます。

その他にキャッシュ関連の対処方法などをネット検索すると、Chromeの「閲覧履歴データの全削除」や「データセーバー(ライトモード)の無効化」などを案内しているケースが見られますが、この手順は今回のケースでは誤りです。

データセーバー(現在は「ライトモード」と呼ばれています)はGoogleのキャッシュサーバーを使ってアクセスを高速化させる技術ですが、もともとシークレットモードではこのライトモードの影響は受けませんので、ライトモードが有効であろうが無効であろうが関係ありません。

また、Chromeの「閲覧履歴データの削除」はログインアカウントや利用中のWebサービスの情報などをきれいさっぱり失ってしまうリスクがあるため今回のケースで行う必要はありません。スーパーリロードとは無関係ですのでご注意ください。

コメント

タイトルとURLをコピーしました