0

問題:mouseenter-mouseleaveイベントハンドラーのペアを実行するたびに、ブラウザーの速度が低下します。

私は別の(無関係の)reziable()要素を持っていますが、それはすでにかなり遅いです。しかし、mouseenter-mouseleaveイベントを約50回繰り返すと、サイズ変更はほとんど使用できなくなります。
それが私が問題に気づいた方法です

シナリオ:スタンプサイズのdivの束には、それぞれユーザー入力が含まれています。それらの上にマウスを置くと、それらは膨らんで完全なコンテンツを表示し、私がマウスを外すと、それらは再びスタンプサイズに縮小します。
インフレアニメーション(負のマージン)が開始する前に、ローカル変数とグローバル変数の両方を使用してフルサイズを決定する計算が少し行われています。縮小すると、マージンがゼロに戻ります。

システムモニターを見ると、ブラウザ(FF、クロム、オペラ)がメモリをかなり激しく消費していることがわかります。これらのボックスに繰り返しマウスを合わせると
、スタンプ(およびそのイベント)もremove()されます。 )ブラウザが再び高速になることはありません。ページ全体をリロードするまで、苦痛を伴うほど遅いままです。

私が間違っている可能性があることについて何か考えはありますか?
PS:実際のコードは数百行なので、今のところそのミスリーを惜しまないでしょう:)

編集:コードは次のとおりです。http://dagfordag.dk/tegn.js 関数tegnIkon()は、divを作成し、初期サイズ計算を実行してから、2つのイベントをアタッチします。
その後、これ以上のイベントはバインドされません。

4

1 に答える 1

1

とった !
私の(ライブの)toolTipperはバックグラウンドで猛烈に働いていて、マウスの後ろに新しい要素が現れるたびにsetTimeouts()を大量に投げていました..-それを
殺しました。今ではすべてが絹のように滑らかです: D

(ヒントは、「メモリリーク」は永続的ではなく、回復が予想よりもはるかに遅かったことです)

于 2012-10-30T13:53:18.590 に答える