Scribble Maps Blog
← All posts

Scribble Maps Blog

Розробникам: Економія кредитів Google API за допомогою автозаповнення

Нове ціноутворення API від Google має багато переваг. Однак, якщо ваш додаток використовує весь набір картографічних функцій і у вас багато користувачів, ви можете помітити, що ваш ліміт почне швидко вичерпуватися. Дві функції, які безпосередньо використовують ваш ліміт і не підпадають під щоденну безкоштовну квоту, — це автозаповнення та пошук місць.

Якщо ви використовуєте свою ліцензію Google з API Scribble Maps, ми робимо деякі з цих оптимізацій автоматично, але якщо ви створюєте власну кастомну реалізацію безпосередньо поверх Google Maps API, є просте оновлення, яке допоможе вам заощадити кредити на автозаповнення.

Стандартна функція автозаповнення надсилає запит на автозаповнення при кожній зміні введення. Можна значно скоротити кількість використаних кредитів, встановивши таймаут при зміні введення.

Ось дуже простий приклад.

 var acTimeOut;  
 textSearchInput.onkeyup = function() {  
 clearTimeout(acTimeout);  
 acTimeout = setTimeout(function() {  
 //put auto-complete calls in here  
 }, 250);  
 }  

Таким чином, щоразу, коли користувач починає вводити текст, автозаповнення не спрацьовуватиме, доки не виникне невелика затримка. Затримку в 250 мс можна зменшити, щоб автозаповнення спрацьовувало частіше. Якщо користувач швидко вводить "Toronto", буде виконано лише один запит на автозаповнення замість 8, коли користувач робить паузу.

Ми вважаємо, що затримка за часом працює найкраще. Важливим моментом є забезпечення того, щоб інтерфейс користувача вказував на виконання пошуку під час введення тексту. У нашому випадку ми використовуємо анімований індикатор завантаження (спінер). Таким чином, якщо користувач пише швидко і не бачить результатів, анімований спінер дасть йому достатньо часу, щоб дочекатися результатів.

Слід зазначити, що впровадження цього рішення відповідає їхнім поточним умовам використання. Цей метод по суті лише обмежує частоту вихідних запитів автозаповнення від користувача.
← All posts