Карта листов отправляет несколько запросов геоджона при панорамировании и масштабировании - установка таймаута? - PullRequest
0 голосов
/ 20 июня 2019

Вкл. https://astreetnearyou.org Я использую события zoomend и moveend для динамического обновления двух каналов геоджона и панели результатов. Проблема, с которой я сталкиваюсь, заключается в том, что они запускаются слишком часто, особенно на мобильных устройствах, где пользователь может несколько раз провести пальцем по карте или увеличить масштаб, чтобы добраться до нужного места.

Есть ли способ задержать запросы на 300 мс, чтобы перехватить такие последовательные события перемещения (перетаскивания или увеличения)? Я видел упоминание о "debounceMoveend" на https://leafletjs.com/reference-1.0.3.html#map-methods-for-modifying-map-state, но не могу найти какую-либо документацию по нему

1 Ответ

0 голосов
/ 20 июня 2019

Я нигде не эксперт в этом, тем не менее я привел пример:

var timeout;

function onZoomEnd() {

  count = document.getElementById('counter')
  
  // CANCEL API-CALL
  clearTimeout(timeout);
  
  // API CALL
  timeout = setTimeout(function() {
  	count.value = parseInt(count.value) + 1
  }, 3000);
  
}
<button onclick="onZoomEnd()">
 ZoomEnd!
</button>

<br>

API-calls<input id="counter" type="number" value=0>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...