2012-12-10 11 views
8

2011年1月にJohn Resigによって書かれたoft-cited blog postには、ハンドラーをウィンドウスクロールイベントにアタッチすることを推奨しています。

代わりに、共通の知恵は、たとえば、あなたのハンドラを絞る言う:ハンドラがスクロールイベントに直接接続されたときに私の最近のテストで

$(window).scroll(_.throttle(myScrollHandler, 250)); 

、UIの応答が非常に滑らかです。ハンドラを調整すると、目に見える遅れが発生します。

最新のブラウザでこの問題を解決しましたか?テストやブラウザの互換性データはありますか?

+0

はほとんどのブラウザで1秒に何度も起動します – charlietfl

+2

'目に見える遅れを引き起こす - あなたがスロットリングなしでより多くのイベントヒットを取得しているからです。あなたの道が合理的なハードウェアと合理的に現代的なブラウザでうまくいくならば、是非ともそれに行きましょう。しかし、最先端のブラウザやコンピュータを持っていない人々を尊重してください。 http://benalman.com/projects/jquery-throttle-debounce-plugin/ –

+0

を参照してください。少し遅延を減らすこともできます。 250では、.scrollイベントは1秒間に4回しか実行されません。 –

答えて

6

スロットルでは、毎秒4回のイベントが発生します。スロットリングを行わないと、1秒あたりのイベント数が大幅に増加する可能性があります。 1秒間に4回は、人間の目で(あなたが何をしているかによって)簡単に検出できます。

スロットルにはまだが必要ですか?が本当にあなたのクライアントに依存しています。あなたがIE6を使用している悪いグラフィックスカードを持つ古いコンピュータをたくさん扱っている場合、高速イベントの発射はおそらく目立つ問題を引き起こすでしょう。また、スクロールイベントが実際に何をしているか(応答にかかる時間、メモリを消費するかどうか、それを解放する速さなど)

関連する問題