0

短い: 私は初心者ですが、率直に尋ねるように最善を尽くしますが、私と一緒に寛容になるようにしてください ;)

しばらくの間、問題の解決策と2つのトピックを探していました。

  1. jQuery AJAX 呼び出し結果のブラウザ キャッシュを防止する
  2. jquery ajaxキャッシュをクリアできますか?

近づいていくつかの素晴らしい解決策を示してください。残念ながら、それらは私の状況では機能しません。

jQuery.ajax() 呼び出しを使用して IP カメラに CGI コマンドを送信する必要があります。私は結果を得て、しばしば結果を変えています。だから私はブラウザが結果をキャッシュすることを許可できません! 私はこのオプションについて知っており、よく読んでいます (トピック 1 を参照)。

$(document).ready(function() {
  $.ajaxSetup({ cache: false });
});

しかし、カメラの CGI コマンド構造はコマンドに添付されたタイムスタンプでは機能しないため、これは私の場合には機能しません。そのため、必要な答えが得られる代わりに、エラーが発生します。

その後、jQueryコードを採用して、オプション「cache: false」を設定したときに添付されるタイムスタンプを削除できると思いました。しかし、いくつかのコメントを読んだ後 (トピック 2 を参照):

したがって、cache: false を使用する場合、jQuery は、現在の時刻を含むパラメーターを URL に追加するだけです。おそらくローカルキャッシュにあるように、ローカルブラウザーに対して別のURLを作成し、リクエストをサーバーに転送します。これ以上何もない。

それで、それも私には役に立たないことがわかりました。

トピック 2 の 1 つの解決策は、"max-age=0" に等しい "Cache-Control" を追加することです。これにより、ローカル キャッシュがオフになり、サーバーの応答ヘッダーに追加されます。しかし、IP カメラのソフトウェアにアクセスできないか、またはまったくアクセスできないため、これは単に機能しません。

1 つの解決策は、その特定の呼び出しのキャッシュを非アクティブ化または削除することだと思います。別の解決策は、他の方法でキャッシュを停止することです。

それでは、ajaxイベントを2回続けて呼び出すときに、Webブラウザーがキャッシュされた回答の使用を停止する方法を知っている人はいますか? (サイトをリロードすると役立ちますが、その場合はダメです)。

私の問題をより明確にするためにさらに情報が必要な場合は、お気軽にお問い合わせください。

よろしく、リヒューム

4

2 に答える 2

0

すべてのリクエストにランダムな引数を追加してみてください。param.cgi?cmd=getinfrared&fixme=21EC2020-3AEA-1069-A2DD-08002B30309D

すべてのリクエストで新しい GUID を生成すると、ブラウザは初めて新しいリソースをリクエストしていると認識します。CGI ソフトウェアは、追加の引数を無視する必要があります...

于 2012-04-16T10:54:20.827 に答える
0

使用しているサーバーを指定していないため、これが機能するかどうかはわかりません.

あなたができることは.htaccessを使うことです

これはすべての Unix タイプのサーバーで動作するはずですが、これをインストールするにはフル アクセス許可が必要です。

<FilesMatch "\.(php|cgi|pl|htm)$">
ExpiresActive Off
Header set Cache-Control "private, no-cache, no-store, proxy-revalidate, no-transform"
Header set Pragma "no-cache"
</FilesMatch>

IIS で Htaccess を使用する方法に関するスレッドを次に示します。

http://forums.iis.net/t/1151878.aspx

于 2012-04-16T20:19:28.437 に答える