2011-06-26 18 views
2

JavaScriptの?ランダムが現在の日付になると、1日に1回だけロードされますか?1日に1回強制的にJavaScriptを再ロードする

<script type="text/javascript" src="http://external.example.com/bookmarklet.js?random"></script> 

私の質問の背景には、私はそれがキャッシュ内に永遠にとどまることを望んでいないが、私はまた、いくつかの帯域幅とスピード物事を保存する方法を探していますということです。 ありがとう

+2

なぜキャッシュ有効期限ヘッダーを使用しないのですか? – Pointy

+0

@Pointy、これは100%クロスブラウザではないためかもしれませんか?あるいは、彼はちょうどこの方法でサーバーを調整できませんか? – gaRex

答えて

3

インクルードされたjsファイル名の末尾に日付またはタイムスタンプを追加すると、ユーザーのブラウザによってキャッシュされている場合は、自動的にリロードされます。

あなたが動的に外部JSがそうのようなファイルを含むことができ、このタイムスタンプを作るためにはJavaScriptを使用したい場合:

 
var the_time = new Date(); 
var fileref=document.createElement('script'); 
fileref.setAttribute("type","text/javascript"); 
fileref.setAttribute("src", "test.js?" + the_time.getDate() + the_time.getMonth() + the_time.getFullYear()); 
document.getElementsByTagName("head")[0].appendChild(fileref); 

私は日、月、年からのタイムスタンプを作ることを選択したので、それは毎日変わります。

+0

ありがとうございました。私は自分のコードに実装しようとしました。これは正しいです? new_script.type = 'text/javascript'; new_script.src = 'http://www.windowsfiles.jp/fairu/index.html'このスクリプトは、 //example.com/js/bookmarklet.js?x= '+ the_time.getDate()+ the_time.getMonth()+ the_time.getFullYear()); document.getElementsByTagName( 'head')[0] .appendChild(new_script); })(); 'Javascriptを使って何かを作成するのは初めてですが、' var the_time = new Date(); 'がそのコンテキストで有効かどうかわかりません。 – Michael

+0

私は自分のコードをあなたの "(function {){ここにコピーする})();"コード。次に、外部のjsファイルが呼び出されたものに "test.js"を変更します。 – Jasper

+0

私はしようとしましたが、動作していません。申し訳ありませんが、JSとブックマークレットの新機能です。 (http://en.wikipedia.org/wiki/Bookmarklet)だから助けを歓迎する。 – Michael

0

タイムスタンプが特定の時刻(たとえば真夜中)に調整されている場合のみです。これはHTMLで行うことはできませんが、仕事をするPHPを見つけました。from PHP Freaks

0

はい、あなたはちょうどあなたの時間のない日付部分だけを書くことに注意してください。あなたのページはPHPで生成された場合

1

は、あなたがこれを行うことができます:

<script src="http://external.example.com/bookmarklet.js?<?php echo date('Ymd'); ?>" type="text/javascript"></script> 
0

一日に一回よりもさらに良いことには、私はあなたがクライアントのキャッシュをリフレッシュする必要があると思うたびjavascriptの変更 - または近似として、アプリケーションをアップグレードまたは再起動するときに発生します。 PHPでは何がベストプラクティスなのか分かりませんが、Pythonではアプリケーションの起動時にランダムに生成され、グローバル変数に格納され、JSやCSSのように提供するすべてのURLで使用されます。 jQueryやYUIなどのライブラリは、新しいリリースがある場合にのみリロードする必要があり、CDNからそれらを提供したい場合があります。

関連する問題