キャッシュを読み込まずに外部jsを必ず読み込ませる

キャッシュを読み込まずに外部jsを必ず読み込ませる

キャッシュを読み込まずに外部jsを必ず読み込ませる方法です。

「キャッシュのせいだから再読込して」と毎回言わなくて済むようにする記述方法

上記サイトが大変詳しく書いてありました。

外部jsを更新したら、読み込む場所で、末尾に?をつけて日付などのクエリーを付加する、というやり方です。

?以降の文字列が異なる場合キャッシュを読み込まず最新の外部jsを読み込んでくれるんですね。

但し、外部jsを更新したら、必ずクエリも変更しないといけません。僕はこれが面倒だと思いました。

スーパーリロードする

スーパーリロードとは、IEでいうCtrl + F5です。これを押すとキャッシュを無視して全てを再読み込みしてくれます。

これも現実的には無理があります。そのシステム利用者が1000人いたとしたら、1000人にスーパーリロードをお願いするとか、有り得ないですね。

PHPで動的に?以降を変更する

色々サイトを見ているとphpで?以降を動的に変更する、といった方法が書かれていました。

Webサーバにphpが入っているのならそれもありです。が、phpが入っていなければ実現不可能です。

JavaScriptで動的に?以降を変更する

ということでJavaScriptで?以降を動的に変えてあげる、というのが一番簡単な方法じゃないかと思います。

<head>部で以下のようにすればよいです。

<script>
    document.write('<script src="sample.js?' + parseInt((new Date)/1000) + '"><\/script>')
</script>

これのデメリットは毎回キャッシュを読み込まない為、余分な通信が発生する、といったところでしょうか。

コメント

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