私は新しいmapbox.js API、特にイベント コールバック 'panned' を使用しています。ユーザーがマップを移動すると、コールバックが約 50 ~ 100 回発生しますが、これは多すぎます。これから最初と最後のイベントのみ (または最後のイベントのみ) を取得する最良の方法は何ですか?
map.addCallback('panned', function(move) {
console.log('panned');
});
私は新しいmapbox.js API、特にイベント コールバック 'panned' を使用しています。ユーザーがマップを移動すると、コールバックが約 50 ~ 100 回発生しますが、これは多すぎます。これから最初と最後のイベントのみ (または最後のイベントのみ) を取得する最良の方法は何ですか?
map.addCallback('panned', function(move) {
console.log('panned');
});
.setTimeoutを使用します。
var timeout = null;
map.addCallback('panned', function (move) {
timeout && window.clearTimeout(timeout);
timeout = window.setTimeout(function () {
console.log('panned')
}, 100)
})
タイムアウト時間については、適切な時間を選択します。これは、いくつかの値をいじって見つける必要があります。
UnderscoreJSには、いくつかの便利な機能があります。
あなたの説明に基づいて、デバウンスが最も適しているかもしれません: ...最後に呼び出されてから待機ミリ秒が経過するまで実行を延期します
「Throttle」も便利です。
HTH