Scribble Maps Blog
Dezvoltatori: Economisirea creditelor Google API cu Autocomplete
Există mulți câștigători cu noile tarife pentru API-ul Google. Cu toate acestea, dacă aplicația dvs. folosește întreaga suită de funcționalități de cartografiere și aveți mulți utilizatori, s-ar putea să constatați că fondul dvs. de credite va începe să scadă rapid. Două funcții care vor consuma direct din fondul dvs. și nu fac obiectul cotei zilnice gratuite sunt autocomplete și place search.
Dacă folosiți licența Google cu Scribble Maps API, noi realizăm o parte din aceste optimizări în mod automat, dar dacă vă construiți propria implementare personalizată direct peste Google Maps API, există o actualizare simplă pe care o puteți face pentru a economisi credite de autocomplete.
Funcționalitatea standard de auto-completare va trimite o solicitare de auto-completare la fiecare modificare a textului introdus. Este posibil să reduceți semnificativ cantitatea de credite utilizate prin introducerea unui timeout atunci când se modifică textul introdus.
Iată un exemplu foarte simplu.
Astfel, de fiecare dată când un utilizator începe să tasteze în câmpul de introducere, funcția de autocomplete nu se va declanșa până când nu există o scurtă întârziere. Întârzierea de 250 ms poate fi redusă pentru ca autocomplete-ul să se declanșeze mai des. Dacă utilizatorul tastează rapid „Toronto”, se va executa un singur apel de auto-completare în loc de 8 atunci când utilizatorul ezită.
Am constatat că întârzierea temporizată funcționează cel mai bine. Un punct critic în acest sens este să vă asigurați că interfața de utilizator indică faptul că o căutare este în desfășurare în timp ce aceștia tastează. În cazul nostru, folosim un indicator de încărcare animat (spinner). În acest fel, dacă utilizatorul tastează rapid și nu vede rezultate, spinner-ul animat îi va oferi o pauză suficientă pentru a vedea rezultatele.
Trebuie menționat că implementarea acestei metode este conformă cu termenii actuali de utilizare. Tot ceea ce face în esență această metodă este să limiteze volumul de apeluri de autocomplete trimise de utilizator.
Dacă folosiți licența Google cu Scribble Maps API, noi realizăm o parte din aceste optimizări în mod automat, dar dacă vă construiți propria implementare personalizată direct peste Google Maps API, există o actualizare simplă pe care o puteți face pentru a economisi credite de autocomplete.
Funcționalitatea standard de auto-completare va trimite o solicitare de auto-completare la fiecare modificare a textului introdus. Este posibil să reduceți semnificativ cantitatea de credite utilizate prin introducerea unui timeout atunci când se modifică textul introdus.
Iată un exemplu foarte simplu.
var acTimeOut;
textSearchInput.onkeyup = function() {
clearTimeout(acTimeout);
acTimeout = setTimeout(function() {
//puneți apelurile de auto-completare aici
}, 250);
}
Astfel, de fiecare dată când un utilizator începe să tasteze în câmpul de introducere, funcția de autocomplete nu se va declanșa până când nu există o scurtă întârziere. Întârzierea de 250 ms poate fi redusă pentru ca autocomplete-ul să se declanșeze mai des. Dacă utilizatorul tastează rapid „Toronto”, se va executa un singur apel de auto-completare în loc de 8 atunci când utilizatorul ezită.
Am constatat că întârzierea temporizată funcționează cel mai bine. Un punct critic în acest sens este să vă asigurați că interfața de utilizator indică faptul că o căutare este în desfășurare în timp ce aceștia tastează. În cazul nostru, folosim un indicator de încărcare animat (spinner). În acest fel, dacă utilizatorul tastează rapid și nu vede rezultate, spinner-ul animat îi va oferi o pauză suficientă pentru a vedea rezultatele.
Trebuie menționat că implementarea acestei metode este conformă cu termenii actuali de utilizare. Tot ceea ce face în esență această metodă este să limiteze volumul de apeluri de autocomplete trimise de utilizator.