Как уменьшить количество запросов к API GoogleMaps с помощью .geocomplete - PullRequest
0 голосов
/ 04 июня 2019

У меня есть текстовый ввод с геокомплектом на моей веб-странице.Каждое событие keyPress отправляет запрос в GoogleMaps API.Я хотел бы изменить это поведение так, чтобы запрос отправлялся каждые 3 символа (не каждая буква) или устанавливал задержку перед запросом.

Я пытался использовать событие geocode: beforegeocomelete_search, но оно не работает.

$("input").geocomplete()
                .bind("geocode:beforegeocomelete_search", function(event, results){
                    if ( $("input").val().length < 4) {
                        throw "At least 3 characters required for request sending";
                    }
                });

У вас есть идеи по этому поводу?

1 Ответ

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

Не уверен, какую версию геокомплета вы используете. Версия на https://github.com/ubilabs/geocomplete/ имеет trigger(), который можно вызвать, когда input соответствует требованиям length.

Примечание: внешняя библиотека по какой-то причине не загружается во фрагменте.

let geo = $('.geocomplete');

geo.geocomplete();
geo.on('input', function() {
  let el = $(this);
  
  if (el.val().length > 3) {
    el.trigger("geocode");
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://raw.githubusercontent.com/ubilabs/geocomplete/master/jquery.geocomplete.min.js"></script>
<input class="geocomplete" />
...