「ブラウザ」タグアーカイブ

ブラウザ表示でのF5とctrl+F5の違い

Web系の開発していると画面表示確認する際に、「cssやjsは変更したのに画面を表示してみると反映されていない」という事を経験した方は少なくないと思います。
こういう場合はまず、F5もしくはctrl+F5を押下して画面を再表示(リロード)確認すると思いますが、そもそも「F5単独」押下と「ctrl+F5同時」押下では何が違うんだろう?という事についてメモしておきます。

F5単独押下時のリロード

  • ブラウザでキャッシュされている場合、キャッシュを利用して画面を再表示します。

Ctrl+F5同時押下時のリロード

  • ブラウザのキャッシュを利用せずにサーバーにある最新の情報を読み込んで画面を再表示します。
  • スーパーリロードとも呼びます
  • ブラウザによって、Ctrl + F5以外でもスーパーリロードは可能です。

ブラウザ別のスーパーリロード方法

<Google Chrome、Microsoft Edge>

  • Ctrl + F5
  • Shift + F5
  • Ctrl + Shift + R
  • Ctrl + 更新ボタン
  • Shift + 更新ボタン

<FireFox>

  • Ctrl + F5
  • Ctrl + Shift + R
  • Shift + 更新ボタン

<Opera>

  • F5
  • Ctrl + R
  • 更新ボタン

<Safari>

  • Shift + 更新ボタン

ブラウザの更新ボタンとは

上記で説明している「更新ボタン」ですが、以下の様にブラウザのアドレスバー付近に表示されている以下のような赤枠内のボタンのことを「更新ボタン」と記載しております。

補足:キャッシュ&リロードに関する応用/注意点

  1. サーバー側制御(キャッシュ制御ヘッダー)との関係
    ブラウザの「F5」や「Ctrl+F5」によるリロードは、あくまでクライアント(ユーザー側ブラウザ)での操作です。ですが、本番環境ではサーバー側・ホスティング側で HTTP ヘッダー(例:Cache-ControlExpiresETag)を設定して「ブラウザにいつまでキャッシュを使わせるか」「変更時には必ず再取得させるか」といった制御が行われています。
    → たとえば、Cache-Control: no-cache, no-storePragma: no-cache を設定しておくと、ユーザー側が「F5」だけでも常に最新取得がされるよう促せる場合があります。
    → 逆に、長めにキャッシュを許す設定がされていると「Ctrl+F5」などをしない限り古いリソースを参照し続ける可能性があります。

  2. 開発/ステージング vs 本番環境の使い分け
    開発中は「Ctrl+F5(または Shift+更新ボタン等)」を日常的に使って「確実にサーバー最新版を取得」するのが安心です。記事にも大まかに触れられています。
    本番環境では、むしろキャッシュを上手に活用することでページ表示を高速化できますが、更新後に旧リソースが残って「見た目が変わらない」「古いCSS/JSが適用されている」というトラブルも起こりやすいです。
    → そこで「バージョニング(例:style.css?v=1.2.3)」や「ハッシュ付きファイル名(例:style.abc123.css)」などを併用すると、ユーザーにキャッシュクリアを意識させずとも確実に更新を反映させられます。
    → また、CDN(コンテンツ配信ネットワーク)を使っている場合、CDN側キャッシュのクリアやパージ(purge)が必要なケースもあります。

  3. モバイル・タブレット・複数ブラウザでの挙動差
    記事では主要なブラウザ(Chrome, Edge, Firefox, Safari, Opera)での「スーパーリロード」のキー操作をリストしています。ただし、モバイル環境(スマホ/タブレット)やブラウザ拡張機能、企業内のカスタムブラウザでは、キー操作が異なる/押してもキャッシュが残る/そもそも更新ボタンしか無いというケースもあります。
    → 例えば iOS の Safari では「更新ボタン長押し→再読み込み/キャッシュの消去」など特殊な操作になることがあります。
    → また、企業/学校環境でプロキシサーバーや内部キャッシュ(例:Squid/キャッシュサーバー)が間に入っていると、ブラウザ側で「Ctrl+F5」しても完全に最新が来ないことがあります。こういった場合は、プロキシキャッシュクリアが必要/あるいはバージョニング戦略を必ず採るべきです。

  4. リロード頻度とユーザー体験のバランス
    頻繁に「Ctrl+F5」を強制する設計(例:ボタンを押させる/ユーザーに再読み込みを案内する)をしてしまうと、ユーザー体験が損なわれる可能性があります。回線が遅い環境やモバイル回線では、「ページが一瞬消えて、再読み込みになった」印象を与えてしまうことも。
    → よって、可能であれば「差分更新」の設計(新旧CSS/JSの両方互換)や「ローディング中のUI/スピナー表示」でユーザーに待機時間を意識させない工夫も有効です。
    → また、キャッシュ切れをユーザーに知らせるインターフェイスは、必要以上に派手に表示しないことで「更新作業中なのかな…」という不安を軽減できます。

  5. ブラウザ開発者ツールの活用
    Web開発時、キー操作以外にも、ブラウザの開発者ツール(DevTools)を使って「キャッシュ無しで再読み込み」を行うことも可能です。例えば、Chrome では「デベロッパーツールを開いた状態で右クリック→再読み込み→キャッシュを無視してハード再読み込み」を選択できます。
    → これにより、ユーザー側のキー操作に頼らず「確実に最新リソースで表示をチェック」できます。
    → また、ネットワークタブで → Disable cache(キャッシュ無効化)をチェックしておくことで、開発中は毎回最新を取得させる設定にできます(ただし、タブを閉じると元に戻ります)。

  6. 結論としての注意点
    結局、「F5」はキャッシュを使ってリロード、「Ctrl+F5(または他のスーパーリロード操作)」はキャッシュを無視して最新を取得という違いがあります。しかし、現実には「キャッシュをどう制御しているか(ヘッダー/CDN/プロキシ)」「ユーザーの環境(モバイル/社内ネットワーク)」「開発運用の体制(バージョニング/キャッシュクリア運用)」という“周辺条件”が非常に重要です。これら全体を俯瞰して設計・運用することで、ユーザーにとって快適で信頼できる表示体験が実現できます。

新ブラウザ「Vivaldi」が登場

Opera(ノルウェーのソフトウェア会社)のCEOだったテッツナー(Jon von Tetzchner)氏が、2010年にCEOを退任してからvivaldi.comを立ち上げ、新ブラウザVivaldiを発表しました。
対応OSは、Windows・ Mac OS X・ Linux deb (Ubuntu/Debian)・ Linux rpm (Fedora)。
コンセプトは、「A new browser for our friends」。

プレビュー版を試用してみると直感的に使いやすい仕上がりとなっています。
画面の左側に操作アイコンが並べられていて、左最上段にしおりマークがブックマークアイコンとなっています。
日本語版では、技術・ゲーム・買い物・スポーツ等のカテゴリが登録されていて、メジャーなサイトが予め登録されています。
左下の設定アイコンで行うブラウザの設定がIEやFirefoxと比べて使いやすくなっています。
例えば、タブの表示位置やショートカットの設定です。
「宇宙一高速なWebブラウザ」を目指すとテッツナー氏が公言しています。
現在は、プレビュー版(v.1.0.83.38 – Technical Preview)ですので、動作が少しもたついていますが、これからが楽しみな新ブラウザです。

Vivaldi(プレビュー版)のダウンロードとインストール手順

  1. 以下サイトへアクセスし、画面中央にある「DOWNLOAD TECH PREVIEW」を選択してインストーラファイルをダウンロードします。
    https://vivaldi.com/
  2. ダウンロードした「Vivaldi_TP_1.0.83.38.exe」をダブルクリックしてインストーラを起動します。
  3. インストーラ画面が起動したら「Accept and Install」を選択します。
  4. インストールが完了すると「Vivaldi」のプレビュー版が起動します。

Internet Explorer11でIE過去バージョンモードで表示する方法

Internet Explorer11で、IE10以前のバージョンで表示する方法をご紹介します。

開発ツールからの表示方法

  1. F12キーを押下して開発ツールを起動します。
  2. 開発ツールのエミュレーション画面を選択します。
  3. ドキュメントモードのプルダウンリストを表示すれと過去のIEバージョンが選択出来ますので、表示したいバージョンを選択すればそのバージョンで表示されます。

Google Chromeのブックマークのバックアップ/リストア方法

Google Chromeのブックマークをバックアップする場合、プロファイルをバックアップする方法と、chromeの設定画面からインポート・エクスポートする方法の2通りありますが、後者のエクスポートする方法が一番簡単なので今回はこちらの方法をご紹介します。

設定画面からエクスポートする方法

  1. Google Chromeの右上の設定ボタン「︙」を選択します。
  2. 「ブックマーク」を選択します。
  3. 「ブックマークマネージャ」を選択します。
  4. 右上の設定ボタン「︙」を選択します。
  5. 「ブックマークをエクスポート」を選択します。
  6. 以下のように保存用画面が表示されるのでファイル名を指定して保存すればブックマークのバックアップ完了です。

設定画面からインポートする方法

エクスポートと同様の手順でブックマークマネージャ画面を開き、「ブックマークをインポート」を選択すればバックアップしたブックマークをリストアすることも可能です。

Firefoxを複数バージョン共存させる方法

FireFoxで複数バージョンで動作確認したい場合のインストール方法を説明します。

1. FireFoxのインストーラ(別Ver)をダウンロード

下記手順でFireFoxのインストーラをダウンロードして下さい。

  1. FireFoxのインストーラが保管されているftpへアクセスしてインストールしたいバージョンのディレクトリを選択します。今回はVer24のESR版を選択します。
    FireFoxバージョン別保管先
  2. Windows版の「win32」を選択します。
  3. 日本語版の「ja」を選択します。
  4. インストーラ用のexeファイルを選択するとダウンロードされます。

2. FireFox(別Ver)をインストール

ダウンロードしたインストーラ(別Ver)を起動してインストールを実行します。インストールは必ず下記手順で行い、インストール直後にFireFoxは起動しないように注意して下さい。

  1. 「次へ」を選択します。
  2. 「カスタムインストール」を選択します。
  3. 「インストール先フォルダ」を変更後、「次へ」を選択します。
    ※インストール先フォルダは既存のFireFoxがインストールされているフォルダとは別のフォルダを指定して下さい。
  4. 「デスクトップ」以外のチェックは全て外して、「次へ」を選択します。
  5. 「FireFoxを既定のブラウザとして使用する」のチェックを外して「インストール」を選択します。
  6. インストール完了後、「今すぐFireFoxを起動」のチェックを外し「完了」を選択します。

3. FireFoxのプロファイルを追加

イントール直後の状態でFireFoxを起動してしまうと、既にインストールされているFireFoxのプロファイルを使用してしまうので、追加インストールしたFireFox用のプロファイルを作成します。

  1. Windowsのスタートメニューから「ファイル名を指定して実行」を選択します。
  2. 名前へ「firefox -p」と入力して「OK」を選択します。 ※反応しない場合は「firefox -createprofile firefoxX.X」と入力すればプロファイルが作成されます
  3. 「新しいプロファイルを作成」を選択します。
  4. 「次へ」を選択します。
  5. 新しいプロファイル名を入力し、「完了」を選択します。
  6. 「終了」を選択します。
  7. FireFoxのプロファイルフォルダを参照して今回追加したプロファイルフォルダが作成されている事を確認します。

4. FireFoxのショートカットファイルの作成

  1. 追加インストールしたFireFoxのフォルダ「【例】C:\Program Files (x86)\Mozilla Firefox_24」を開いて「firefox.exe」ショートカットファイルを作成します。
  2. 作成したショートカットファイルを右クリックしてプロパティを選択します。
  3. リンク先の末尾に「-p {上記3.5で作成したプロファイル名} -no-remote」を追記します。

    【例】
    「”C:\Program Files (x86)\Mozilla Firefox_24\firefox.exe”」
     ↓
    「”C:\Program Files (x86)\Mozilla Firefox_24\firefox.exe” -p firefox24 -no-remote」

後は作成したショートカットをダブルクリックしてFireFoxを起動すれば、既存インストール済のFireFoxとは別のプロファイルを使用したFireFoxが起動されます。は上記手順を繰り返せば別バージョンのFireFoxを更に増やすことも可能となります。

ブラウザの戻るボタンを押すと有効期限切れになってしまう

Webページを作成していると、ブラウザバック(ブラウザの戻るボタン押下)時に有効期限切れのメッセージが表示される事があります。今回はこの事象についてまとめてみようと思います。

何故「ページの有効期限切れ」対策が必要なのか?

そもそも何故、ページの有効期限切れ対策が必要となるのでしょうか?
正直、個人的にはブラウザによるセキュリティ対策で個人情報をキャッシュさせない為の制御なので、ブラウザ仕様になるのでAP側では対処不要と考えています。
それでも業務用APなどではクライアント側が納得してくれないケースも多いと思われます。それは何故でしょうか?

  • まず、格好と見栄えが悪い。
  • 戻るボタンを押したのだから、当然直前の入力画面へ戻るだろうと勝手に思い込んでいる。
  • ユーザから見れば意味不明の画面が表示されているので、何か異常があったのかと思う。

大体、こんなところでしょうか。

「ページの有効期限切れ」が発生する原因

  1. POSTでパラメータ送信している
  2. SESSIONを使用している
  3. 上記を使用しているページへ戻ろうとしてブラウザの「戻る」ボタンを押下した

ブラウザ側では「ページの有効期限切れ」を表示する際、どこをチェックするのか

多くのブラウザではページ有効期限を確認する際、以下の「HTTPヘッダー」の設定値を確認します。

  • Last-Modified:最終更新日
  • Expires:有効期限
  • pragma :HTTP1.0仕様に基づくデータのキャシュ制御オプション
  • Cache-Control:HTTP1.1仕様に基づくデータのキャシュ制御オプション

ページの有効期限切れが発生した場合、まずHTTPヘッダーの設定値が現在どうなっているか確認して下さい。

対策

クライアント側

  • 有効期限切れが表示されたらF5キー押下やブラウザのページ再読みなどでページをリロードしてもらう
  • 恐らくこれがAP側の対応も不要になるので一番手っ取り早い対処方法です。

サーバ(AP)側

  • ブラウザの戻るボタンを無効又は非表示にしてしまう。
  • 仮に有効期限切れの事象を回避出来てたとしても、DB更新後にブラウザバックされた場合など、ブラウザバックによって他にも問題が出てくる可能性が高いと思われます。AP側で一番良い対処法と思われるのはブラウザの戻るボタンがユーザの目立つ位置に見えているからつい押下してしまうので、戻るボタンを無効化又は非表示にしてしまうことが一番確実な対処方法と思われます。但しクライアントが納得すればの話ですが。

  • POSTではなくGETを使用する。
  • ブラウザではPOSTは警告を出力しますが、GETではそのまま画面遷移します。但し、POST時にパスワードなどの個人情報や大量のデータを送信している場合はオススメしません。

  • HTTPヘッダーの設定値を見直す。
  • HTTPヘッダーの設定値を変更する事で、ブラウザ側の有効期限チェックを回避する事が出来ます。