0

クライアントで jQuery.getScript を介してロードする JavaScript ファイルがあり、サーバー側で 1 時間のブラウザー キャッシュを使用してキャッシュ制御ヘッダーを設定しています。IE が ajax リクエストをキャッシュしているように見え、ファイルに存在する関数は IE で実行されません。getScript 呼び出しで false を設定すると、サーバー側から設定された 1 時間のキャッシュ制御ヘッダーが上書きされますか?

var jsCache = true;
    if($.browser.msie){
        jsCache = false;
    }
        if(!initialized){

            $.getScript('thatjsfileurl', function() { 
             $("#welcome").pluginInit({
                start:'newPage'
             });  
             initialized = true;
            },jsCache);
        }

注: Akamai も配置されているため、サーブレット側でブラウザー検出コードを設定することはできません。

4

2 に答える 2

0

投稿した上記のコードをテストして、自分で答えを見つけました。cache-control: 1hr などのサーバー側ヘッダー変数は、キャッシュする変数を false に設定すると、ブラウザーによってオーバーライドされます。キャッシュが false に設定されている場合、IE ブラウザーがサーバーから新しいコピーをフェッチするたびに。

var jsCache = true;
    if($.browser.msie){
        jsCache = false;
    }
        if(!initialized){

            $.getScript('thatjsfileurl', function() { 
             $("#welcome").pluginInit({
                start:'newPage'
             });  
             initialized = true;
            },jsCache);
        }
于 2013-04-26T20:15:25.563 に答える