Scribble Maps Blog
Sviluppatori: Risparmiare crediti delle API di Google con l'Autocomplete
Ci sono molti vincitori con le nuove tariffe delle API di Google. Tuttavia, se la tua app utilizza l'intera suite di funzionalità di mappatura e hai molti utenti, potresti notare che il tuo budget inizierà a calare rapidamente. Due funzioni che attingono direttamente al tuo budget e non sono soggette alla quota giornaliera gratuita sono l'autocompletamento e la ricerca dei luoghi.
Se utilizzi la tua licenza Google con l'API di Scribble Maps, eseguiamo alcune di queste ottimizzazioni in modo predefinito, ma se stai creando la tua implementazione personalizzata direttamente sopra l'API di Google Maps, c'è un semplice aggiornamento che puoi fare per risparmiare alcuni crediti di autocompletamento.
La funzionalità standard di autocompletamento invierà una richiesta di autocompletamento a ogni modifica dell'input. È possibile ridurre significativamente la quantità di crediti utilizzati inserendo un timeout quando l'input cambia.
Ecco un esempio molto semplice.
Quindi, ogni volta che un utente inizia a digitare nell'input, l'autocompletamento non si attiverà fino a quando non ci sarà un breve ritardo. Il ritardo di 250 ms può essere ridotto per far attivare l'autocompletamento più spesso. Se l'utente digita rapidamente "Toronto", verrà eseguita una sola chiamata di autocompletamento invece di 8 quando l'utente esita.
Riteniamo che il ritardo temporizzato funzioni al meglio. Un punto fondamentale è assicurarsi che l'interfaccia utente indichi che è in corso una ricerca mentre si digita. Nel nostro caso utilizziamo uno spinner animato. In questo modo, se l'utente digita rapidamente e non vede i risultati, lo spinner animato gli darà una pausa sufficiente per visualizzare i risultati.
Va notato che l'implementazione di questo metodo è conforme ai loro attuali termini d'uso. Tutto ciò che questo metodo fa essenzialmente è limitare la quantità di chiamate di autocompletamento in uscita dall'utente.
Se utilizzi la tua licenza Google con l'API di Scribble Maps, eseguiamo alcune di queste ottimizzazioni in modo predefinito, ma se stai creando la tua implementazione personalizzata direttamente sopra l'API di Google Maps, c'è un semplice aggiornamento che puoi fare per risparmiare alcuni crediti di autocompletamento.
La funzionalità standard di autocompletamento invierà una richiesta di autocompletamento a ogni modifica dell'input. È possibile ridurre significativamente la quantità di crediti utilizzati inserendo un timeout quando l'input cambia.
Ecco un esempio molto semplice.
var acTimeOut;
textSearchInput.onkeyup = function() {
clearTimeout(acTimeout);
acTimeout = setTimeout(function() {
//inserisci le chiamate di autocompletamento qui
}, 250);
}
Quindi, ogni volta che un utente inizia a digitare nell'input, l'autocompletamento non si attiverà fino a quando non ci sarà un breve ritardo. Il ritardo di 250 ms può essere ridotto per far attivare l'autocompletamento più spesso. Se l'utente digita rapidamente "Toronto", verrà eseguita una sola chiamata di autocompletamento invece di 8 quando l'utente esita.
Riteniamo che il ritardo temporizzato funzioni al meglio. Un punto fondamentale è assicurarsi che l'interfaccia utente indichi che è in corso una ricerca mentre si digita. Nel nostro caso utilizziamo uno spinner animato. In questo modo, se l'utente digita rapidamente e non vede i risultati, lo spinner animato gli darà una pausa sufficiente per visualizzare i risultati.
Va notato che l'implementazione di questo metodo è conforme ai loro attuali termini d'uso. Tutto ciò che questo metodo fa essenzialmente è limitare la quantità di chiamate di autocompletamento in uscita dall'utente.