6

jquery の load 関数を使用してロードされたページでは、含まれているすべての JavaScript ファイルに引数「_」があり、その値は現在の UNIX タイムスタンプに 3 つの追加の数値を加えた値です。

たとえば、「file.js」をインクルードすると、インクルードされる実際のファイルは「file.js?_=1378360893522」になります。

javascript ファイルのキャッシュを妨げています。この動作を停止する方法はありますか?

編集:要求されたとおり、関連するコードは次のとおりです。

index.html:

<html>
    <head>
        <script type="text/javascript" src="js/jquery.min.js"></script>
    </head>
    <body>
        <div id='new-page'></div>
    </body>
    <script>
        $(document).ready(function() {
            $('#new-page').load("another-page.html");
        });
    </script>
</html>

別のページ.html:

<html>
    <head>
        <script type="text/javascript" src="js/another-js-file.js"></script>
    </head>
    <body>
    </body>
</html>

「another-js-file.js」は「another-js-file.js?_=1378425747710」としてロードされます

2番目の編集:これは回答されました。これを読んでいる人のために、ロードコールを次のように変更しました。

$.ajax({
    url: "another-page.html",
    cache: true,
    dataType: "html",
    success: function(data){
        $("#new-page").html(data);
    }
});

一部の人々は、特定のプラグインがajaxSetupを介してキャッシュをfalseに設定する可能性があると述べているため、キャッシュしたいajax呼び出しの前にこれを使用する必要があるかもしれません:

$.ajaxSetup({cache:true});
4

1 に答える 1

5

あなたの問題は十分に文書化されており、解決策は次の場所から取得できます。

jQuery バージョン 1.5 - ajax - <script> タグのタイムスタンプの問題

cache解決策には、jQuery AJAX 呼び出しでオプションを使用することが含まれます。

于 2013-09-06T00:27:24.560 に答える