2,452 views
この記事は最終更新から 1778日 が経過しています。
1. やりたいこと
WEBブラウザで表示中のページを JavaScriptで強制リロードさせたい。
FireFoxを愛用している自分は、以下のように書いて満足していた。
location.reload(true);
ところがこれだと…
Google Chromeでリロードされない!
のであった。
なぜならば…
location.reload(true) で強制を指示する trueは、
非公式な仕様
なのだそうだ。
でも…
Google Chromeでも JavaScriptでページを強制リロードさせたい!
2. やってみる
対策1 : URLにパラメータを付ける。
CSSや JavaScriptファイルの更新時などによくやっている。
function execReloadPage(){
var date = new Date();
window.location = get_baseUrl() + '?v=' + date.getTime();
}
率直に言ってダサい。
しかも…
後でパラメータなしの URLでアクセスすると、古いページが表示されてしまう。
よって…
これは実用に耐えられないと判断した。
対策2 : Ajaxでページを強制リロードした後に遷移する。
Ajaxを使い、no cache指定で一度裏でページを強制リロードする。
ここでキャッシュがクリアされているので、その後は普通にアクセスすればよい。
$.ajax({
type: "post",
url: window.location.href,
async: false,
cache : false,
}).done(function () {
window.location.reload(true);
});
こちらを採用しよう!
3. 参考情報
https://developer.mozilla.org/ja/docs/Web/API/Location/reload
アクセス数(直近7日): ※試験運用中、BOT除外簡易実装済2026-01-24: 0回 2026-01-23: 1回 2026-01-22: 0回 2026-01-21: 3回 2026-01-20: 0回 2026-01-19: 0回 2026-01-18: 0回