Scribble Maps Blog
← All posts

Scribble Maps Blog

Vývojáři: Jak ušetřit kredity Google API pomocí Autocomplete

Nové ceny API od Googlu přinášejí řadu výhod. Pokud však vaše aplikace využívá celou škálu mapových funkcí a máte mnoho uživatelů, můžete zjistit, že váš kredit začne rychle ubývat. Dvě funkce, které čerpají přímo z vašeho kreditu a nevztahuje se na ně denní bezplatný limit, jsou automatické doplňování (autocomplete) a vyhledávání míst (place search).

Pokud používáte svou licenci Google s API Scribble Maps, provádíme některé z těchto optimalizací automaticky. Pokud však stavíte vlastní implementaci přímo nad Google Maps API, existuje jednoduchá úprava, kterou můžete provést, abyste ušetřili kredity za autocomplete.

Standardní funkce automatického doplňování odešle požadavek při každé změně vstupu. Množství spotřebovaných kreditů je možné výrazně snížit nastavením časového limitu (timeout) při změně vstupu.

Zde je velmi jednoduchý příklad.

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

Takže pokaždé, když uživatel začne psát do vstupu, automatické doplňování se nespustí, dokud nenastane krátká prodleva. Prodlevu 250 ms lze zkrátit, aby se autocomplete spouštěl častěji. Pokud uživatel rychle napíše „Toronto“, provede se pouze jedno volání autocomplete namísto 8, když uživatel zaváhá.

Zjistili jsme, že časová prodleva funguje nejlépe. Klíčovým bodem je zajistit, aby uživatelské rozhraní během psaní indikovalo, že probíhá vyhledávání. V našem případě používáme animovaný indikátor (spinner). Tímto způsobem, pokud uživatel píše rychle a nevidí výsledky, animovaný indikátor mu poskytne dostatečnou pauzu, aby se výsledky zobrazily.

Je třeba poznamenat, že implementace tohoto řešení je v souladu s jejich aktuálními podmínkami použití. Tato metoda v podstatě pouze omezuje množství odchozích volání autocomplete od uživatele.
← All posts