OpenLayersのzoomendイベントのリスナー内でかなり集中的なタスクを実行したいと思います。
ユーザーがズームコントロールを連続して非常にすばやくクリックしたときにこのリスナーが何度も実行されないようにするには、BenAlmanのjQueryThrottle-Debounceプラグインのようなものを使用するのが賢明だと思いました。
だから私は次のようなコードを試していますが、うまくいきません。ズームエンドリスナーコールバック内の$.debounce()内のコールバックは、実行されません。デバウンス機能を削除したかどうかを確認するために、zoomendのリスナーコールバックが実行されます。
map = new OpenLayers.Map('map',{
eventListeners: {
zoomend: function(event) {
//execute 300ms after user stops zooming
$.debounce(300,function(event) {
//..computationally intensive task
});
}
}
});
私は何が間違っているのですか?
そして、私はデバウンスを気にする必要がありますか?