0

Web アプリケーションには、入力された値に応じて変化するフィールドと値を持つフォームがあります。フォーム要素の 1 つで変更イベントが発生するたびに、負荷の高い AJAX 呼び出しを使用して、ページ上の他の要素を更新します。

これは、選択、ラジオボタン、およびチェックボックスに最適です。この問題は、ユーザーがテキスト フィールドにコンテンツを追加し、テキスト フィールドからフォーカスを移さずにリンクをクリックすると発生します。ブラウザーは新しいページに移動し、テキスト フィールドの内容は保存されません。これを回避する簡単なコーディング方法はありますか? AJAX 呼び出しは、キーを押すたびに呼び出すにはコストが高すぎます。

現時点での私のプロトタイプコードの例を次に示します。

$$('.productOption input.text').invoke('observe', 'change', saveChangeEvent);
4

2 に答える 2

0

ウィンドウのunload()イベントにフックすることを検討しましたか? .unload() を使用した ac/p jQuery の例を次に示します。

$(window).unload(function() {
  var input = $("#MyInput");  // Text field to check for

  if(input.length > 0)
  {
     //Ajax call to save data, make sure async:false is set on ajax call.
  }
});

これにより、キーが押されるたびに電話をかけることを回避できます。

于 2010-05-17T22:02:50.080 に答える
0

プロトタイプを使用すると、たとえば 2 秒間何も起こらず、最後の AJAX リクエスト以降に値が変更されたときに、ajax クエリを入力して送信している間に、PeriodicExecuter をリッスンさせることができます。focus イベントを使用して executor を開始し、blur イベントを使用してシャットダウンします。これにより、一度に 1 つの executor のみが必要になります。

于 2010-05-17T22:03:23.527 に答える