Scribble Maps Blog
← All posts

Scribble Maps Blog

Geliştiriciler: Otomatik Tamamlama ile Google API Kredilerinden Tasarruf Etmek

Google'ın yeni API fiyatlandırmasıyla kazanan pek çok kişi var. Ancak, uygulamanız haritalama işlevlerinin tamamını kullanıyorsa ve çok sayıda kullanıcınız varsa, havuzunuzun hızla azalmaya başladığını görebilirsiniz. Doğrudan havuzunuzdan çekecek ve günlük ücretsiz kotaya tabi olmayan iki işlev otomatik tamamlama ve yer aramadır.

Google lisansınızı Scribble Maps API ile kullanırsanız, bu optimizasyonlardan bazılarını hazır olarak sunuyoruz, ancak doğrudan Google Maps API üzerinde kendi özel uygulamanızı oluşturuyorsanız, otomatik tamamlama kredilerinden tasarruf etmek için yapabileceğiniz basit bir güncelleme var.

Standart otomatik tamamlama işlevi, girdideki her değişiklikte bir otomatik tamamlama isteği gönderir. Girdi değiştiğinde bir zaman aşımı (timeout) koyarak kullanılan kredi miktarını önemli ölçüde azaltmak mümkündür.

İşte çok temel bir örnek.

 var acTimeOut;  
 textSearchInput.onkeyup = function() {  
 clearTimeout(acTimeout);  
 acTimeout = setTimeout(function() {  
 //otomatik tamamlama çağrılarını buraya koyun  
 }, 250);  
 }  

Yani kullanıcı girdiyi yazmaya her başladığında, geçici bir gecikme olana kadar otomatik tamamlama tetiklenmeyecektir. Otomatik tamamlamanın daha sık tetiklenmesini sağlamak için 250 ms'lik gecikme süresi azaltılabilir. Kullanıcı hızlıca "Toronto" yazarsa, kullanıcı duraksadığında 8 yerine yalnızca bir otomatik tamamlama çağrısı yürütülecektir.

Zaman ayarlı gecikmenin en iyi sonucu verdiğini görüyoruz. Bunun için kritik bir nokta, kullanıcı arayüzünün kullanıcılar yazarken bir arama yapıldığını göstermesini sağlamaktır. Bizim durumumuzda animasyonlu bir yükleme simgesi (spinner) kullanıyoruz. Bu sayede kullanıcı hızlı yazıyor ve sonuçları göremiyorsa, animasyonlu yükleme simgesi onlara sonuçları görmeleri için yeterli bir duraklama sağlayacaktır.

Bunu uygulamanın mevcut kullanım koşullarına uygun olduğunu belirtmek gerekir. Bu yöntemin esasen yaptığı tek şey, kullanıcıdan giden otomatik tamamlama çağrılarının miktarını sınırlamaktır (throttle).
← All posts