0

index.htmajaxリクエストを介してdivを取得して別のhtmlzoom.htmに追加するリンクがあるhtmlページがありますzoom.htmが、で変更を加えても、変更は反映されず、のようなものzoom.htmがどこかに保存されます( cached)そしてそれはそのキャッシュされた(本当にキャッシュされているかどうかはわかりません)ページからdivを取得しています。プロジェクトからzoom.htmを削除しても、コンテンツは表示されたままです。

$.get('zoom.htm', function(html) {
 $(html).hide().appendTo('body').fadeIn(500);
}, 'html');
  1. リクエストするたびにzoom.htmの新しいコピーを取得するにはどうすればよいですか。
  2. Zoom.htmをzoom.jspに置き換えると(これは私がやりたいことですが、htmlページでテストしています)、正しく機能しません(すべてのhtmlはzoom.htmと同じです)。
4

3 に答える 3

0

取得している応答がキャッシュからのものであるかどうか、デバッガーを確認してみてください。Chromeデベロッパーツールでは、通常、「(キャッシュから)」とマークされています。Chromeでは、キャッシュを強制的に無効にすることもできます。開発者ツールを開き、右下の歯車をクリックします。次に、オーバーレイが表示されます。「キャッシュを無効にする」をクリックします。それ以降のリクエストでは、キャッシュされたオブジェクトは使用されません。

また、ある種のCMSを使用している場合、サーバー側のキャッシュを無効にするオプションがある場合は、それも無効にすることをお勧めします。


一方、正しいファイルを編集していますか?取得しようとしているファイルではなく、ファイルのコピーを編集している可能性があります。いつも私に起こります。

于 2012-08-11T11:12:37.450 に答える
0

キャッシュされた応答を受け取らないようにするには、たとえばタイムスタンプを追加して、URLが毎回一意であることを確認する必要があります。

'zoom.htm?' + new Date().getTime()
于 2012-08-11T10:58:53.670 に答える
0

フェッチされた zoom.htm がキャッシュされたバージョンであるかどうかをテストする最も簡単な方法は、ブラウザーのキャッシュをクリアすることです。たとえば、Firefox の「編集 > 設定 > 詳細設定: キャッシュされた Web コンテンツ => 今すぐ消去」。

次に、サーバーが Apache に似ていると仮定すると、次のように Header ディレクティブを使用してブラウザが zoom.htm ファイルをキャッシュしないようにすることができます (つまり、プロジェクト ディレクトリに .htaccess ファイルを作成します)。

<filesMatch "\.(html|htm|js|css)$">
    FileETag None
    <ifModule mod_headers.c>
        Header unset ETag
        Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
        Header set Pragma "no-cache"
        Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT"
    </ifModule>
</filesMatch>

asapacheに示されているように。それが役に立てば幸い。

于 2012-08-11T11:20:29.353 に答える