1

この質問の回答window.setIntervalは、テキストボックスの内容が変更された場合に (ぼかしを待たずに) すぐに検出する唯一の信頼できる方法として使用することを提案しています。

私のデスクトップ PC でも、IE や Firefox が、いくつかのテキスト ボックスをチェックする比較的単純なハンドラーで実行されている 500 ミリ秒の setInterval で、自明ではない割合の CPU を消費しているのを目にします。これはデスクトップ PC では問題ありませんが、ラップトップやモバイルではバッテリーの寿命が短くなります。

jqueryを使用してCPU使用率を最小限に抑えながら、テキストボックスへの変更(キーの押下だけでなく、クリップボードの貼り付け、ajaxの更新などを含む)に応答して高速な更新を提供する良い方法は何ですか?

4

2 に答える 2

4

onBlur必ずしもオブジェクトを変更せずにオブジェクトから離れた場合です。

onChange値を変更したオブジェクトから離れた後にのみ呼び出されます。

これらのいずれかがニーズに合うはずです。そうでない場合、文字が変わるたびにさまざまなキー押下イベントがトリガーされます。

これらが定期的に更新されない場合、単一の JavaScript 変数を定期的に更新しても、セレクターが奇妙な DOM 動作を引き起こしている場合を除き、あなたが言っているほどの処理能力を必要としない可能性があります。

これを試してください: ID で要素を参照し、その参照を js 変数に格納します。この参照を介して別の変数を更新および変更することは、簡単な操作です。

于 2012-01-23T18:04:16.077 に答える
2

そのテキスト ボックスのフォーカスで window.setInterval (または setTimeout) チェッカーの実行を開始し、ぼかしでそれを終了します。そうすれば、カーソルがテキスト ボックス内にないときに CPU パワーを使い果たすことはありません。

于 2012-01-23T18:35:30.293 に答える