-1

私は非常にJSであるアプリに取り組んでおり、テキストボックスIE8およびIE7(IE9ではまだ見られない)に入力すると、ランダムに一瞬一時停止し、キーストロークが登録されないように見えることに気付きました。特定の文字または文字列の長さにリンクされているようには見えません。タイピングが速ければもっと起きていると思います。

私の疑いでは、アプリには IE がハンドルを維持するのに苦労している JS フレームワークがあり、IE が何か他のことを考えているため、キーストロークが失われます。

Process Explorer を使用すると、アプリが IE の RAM 使用量を 165MB に上げ、入力中に CPU 使用率が 4% から 10% に上昇することに気付きました。

検証、ショートカットのキャプチャなどのためにキーストロークにバインドされているものをすべて削除しようとしましたが、それでも発生します。

問題がアプリケーション内の js が多すぎること、またはこのコンテキストで IE の問題に遭遇し、別の提案があることは合理的だと思われますか?

(編集) Firefox 3.6 と Chrome でアプリケーションをテストしましたが、どちらもこの問題を経験していません。

提供されたヘルプに感謝します。

4

2 に答える 2

1

テキストボックスに入力したときに JavaScript が実行されているかどうかを確認します。

頭に浮かぶ最も簡単な方法は、Firefox で Break On Next オプションを使用して Firebug を使用することです (見つからない場合は画像を参照してください)。

次に、テキストボックスに焦点を合わせて入力を開始すると、呼び出された関数でデバッガーがポップアップするはずです。

于 2011-06-30T10:52:11.107 に答える
1

JS 処理が疑われる場合は、IE7 または 8 と IE9 のアプリのパフォーマンスに大きな違いがあることがわかります (IE9 の JS パフォーマンスは大幅に高速化されているため)。FF と Chrome では、JS のパフォーマンスの問題であることを裏付ける大きな違いが既に見られます。

原因となっている可能性が最も高いのは、タイマー イベントまたはイベント ハンドラーのいずれかである可能性が高いため、遅延の原因を見つけることができるかどうかを確認するために、見つけられる限りそれらを検索して一時的に無効にすることをお勧めします。

それでもうまくいかない場合は、JS プロファイラーを使用して、常にどこに行っているかを見つける必要があります。

于 2011-06-30T10:39:14.803 に答える