Scribble Maps Blog
← All posts

Scribble Maps Blog

Tərtibatçılar: Avtomatik Tamamlama ilə Google API Kreditlərinə Qənaət Etmək

Google-un yeni API qiymətləndirməsi ilə bir çox qazananlar var. Bununla belə, əgər tətbiqiniz xəritəçəkmə funksionallığının bütün paketindən istifadə edirsə və çoxlu istifadəçiniz varsa, limitinizin sürətlə azalmağa başladığını görə bilərsiniz. Birbaşa limitinizdən istifadə edən və gündəlik pulsuz kvotaya tabe olmayan iki funksiya avtomatik tamamlama (autocomplete) və məkan axtarışıdır (place search).

Google lisenziyanızı Scribble Maps API ilə istifadə etdikdə biz bu optimallaşdırmaların bəzilərini birbaşa təqdim edirik, lakin birbaşa Google Maps API üzərində öz xüsusi tətbiqinizi qurursunuzsa, avtomatik tamamlama kreditlərinə qənaət etmək üçün edə biləcəyiniz sadə bir yeniləmə var.

Standart avtomatik tamamlama funksionallığı daxiletmədəki hər bir dəyişikliklə bir avtomatik tamamlama sorğusu göndərəcək. Daxiletmə dəyişdikdə bir gecikmə (timeout) təyin etməklə istifadə olunan kreditlərin miqdarını əhəmiyyətli dərəcədə azaltmaq mümkündür.

Budur çox sadə bir nümunə.

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

Beləliklə, istifadəçi daxiletmə sahəsinə yazmağa başladığı hər dəfə, müvəqqəti bir gecikmə olana qədər avtomatik tamamlama işə düşməyəcək. Avtomatik tamamlamanın daha tez-tez işə düşməsi üçün 250ms-lik gecikmə azaldıla bilər. İstifadəçi tez bir zamanda "Toronto" yazdıqda, istifadəçi tərəddüd etdikdə baş verən 8 sorğu əvəzinə yalnız bir avtomatik tamamlama çağırışı icra ediləcək.

Biz müəyyən edilmiş vaxt gecikməsinin ən yaxşı nəticə verdiyini görürük. Bunun üçün vacib bir məqam, istifadəçi yazarkən istifadəçi interfeysinin axtarışın getdiyini göstərməsini təmin etməkdir. Bizim vəziyyətimizdə biz animasiyalı fırlanan nişandan (spinner) istifadə edirik. Bu yolla, istifadəçi sürətlə yazırsa və nəticələri görmürsə, animasiyalı fırlanan nişan onlara nəticələri görmək üçün kifayət qədər fasilə verəcəkdir.

Qeyd edilməlidir ki, bunun tətbiqi onların hazırkı istifadə şərtlərinə tam uyğundur. Bu metodun əsasən etdiyi tək şey istifadəçidən gələn xarici avtomatik tamamlama çağırışlarının sayını məhdudlaşdırmaqdır (throttle).
← All posts