1

jQuery の AJAX POST メソッドを使用して DOM を更新する ASP.Net アプリケーションがあります。

  1. ユーザーが日付を入力します
  2. ユーザーがリンク ボタンをクリックする
  3. データベースへの JQuery ajax post 呼び出しは、要求されたデータを含む div をロードします。

ユーザーが IE でページを手動で更新しない限り、すべて正常に動作します。
変更を加えてブラウザの更新ボタンを押してから、これらの 3 つの手順をもう一度実行すると、データベースが適切に更新されていても、入力したばかりの更新されたデータが表示されません。

元のデータを表示します。

変更を確認するには、ブラウザを完全に閉じてから再度開く必要があります。

これは IE でのみ発生します。
FF と Chrome は、更新すると変更が表示されます。

ここで何が欠けていますか?

4

2 に答える 2

5

Internet Explorer は URL への AJAX 要求をキャッシュし、同じ URL に対して別の AJAX 呼び出しを行うと、キャッシュされた応答を返すだけです。ありがたいことcacheに、jQuery AJAX 呼び出しでオプションを設定するfalseと、URL にタイムスタンプが追加され、キャッシュがバイパスされます。

すべての jQuery AJAX リクエストに対してそのオプションを設定するには、次の$.ajaxSetup()ように関数を使用できます。

$.ajaxSetup({cache : false});

これを .js ファイルの先頭に配置して、AJAX 要求の前に実行されるようにします。

于 2012-08-14T11:00:01.410 に答える
0

あなたが実際に何を望んでいるかはわかりませんが、次のようなものを作成します。

  1. ページが初めて読み込まれたか、ポストバックされたかを示す値の非表示の入力を作成します。
  2. Page_loaded() イベント内のコード ビハインドから、ページが初めて読み込まれたかどうかを確認し、非表示の入力に bool 値を格納してそれを示します。
  3. $(document).ready() 関数内で、その非表示の入力値をチェックし、それに基づいて、Jquery ajax 呼び出しを行うかどうかを決定できます。
于 2012-08-14T11:00:31.637 に答える