2

ajax 関数を使用してサイトのサブページを取得しています。すべてがうまくいっています。しかし、コンソールでリクエストを確認すると、次のレポートが表示されます

Cache-Control   no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Connection  close
Content-Length  6663
Content-Type    text/html
Date    Wed, 11 Apr 2012 16:29:51 GMT
Expires Thu, 19 Nov 1981 08:52:00 GMT
Pragma  no-cache
Server  LiteSpeed
Vary    Accept-Encoding, User-Agent
X-Powered-By    PHP/5.3.10

コンテンツがキャッシュされていないことを示しています。過去の日付でヘッダーの有効期限が表示されます。しかし、 ajax()の jquery ページで、デフォルトではすべての ajax 呼び出しがキャッシュされていることを読みました。何が問題なのですか? これが私のコードです

 <script type="text/javascript">
  $("#subpage1").click(function() {
    $("#wrapper").empty();      
    $("#wrapper").html('loading');
    $.ajax({
        url: 'subpage/1.html',
        success: function(data) {
            $("#wrapper").html(data);   
        }
    });
});
</script>

私はjqueryとajaxが初めてです。

4

1 に答える 1

2

コンソールからの出力を間違って解釈しているだけです。これはサーバーからの応答ヘッダーであり、その応答をキャッシュに保存しないようにクライアントに明示的に指示します。

キャッシュしたい場合は、クライアント側ではなく、トランザクションのサーバー側で変更を加える必要があります。これは主に、適切なヘッダーを送信することによって行われます: 将来の有効期限を提供するか、まったく提供しません。そして、それらの「キャッシュ」ヘッダーを削除します。その後、クライアントは次のリクエストで最後にキャッシュされたリクエストの日付を (If-Modified-Since ヘッダーで) 送信し、スクリプトがその日時以降に実際に変更があったかどうかを確認する必要があります。 、通常どおりコンテンツを返します。それ以外の場合は、http ステータス コード 304 Not modified で応答します。キャッシュ制御に関連する http ヘッダーについての Google、これは少しトリッキーです。

于 2012-04-11T16:48:22.323 に答える