Scribble Maps Blog
Entwickler: Google-API-Guthaben sparen mit Autocomplete
Es gibt viele Gewinner bei Googles neuem API-Preismodell. Wenn Ihre App jedoch die gesamte Palette der Mapping-Funktionen nutzt und Sie viele Nutzer haben, werden Sie feststellen, dass Ihr Kontingent schnell schrumpft. Zwei Funktionen, die direkt von Ihrem Kontingent abgezogen werden und nicht dem täglichen kostenlosen Limit unterliegen, sind Autocomplete und die Ortssuche.
Wenn Sie Ihre Google-Lizenz mit der Scribble Maps API nutzen, nehmen wir einige dieser Optimierungen standardmäßig vor. Wenn Sie jedoch Ihre eigene benutzerdefinierte Implementierung direkt auf der Google Maps API aufbauen, gibt es eine einfache Anpassung, mit der Sie Autocomplete-Guthaben sparen können.
Die Standard-Autocomplete-Funktion sendet bei jeder Änderung der Eingabe eine Autocomplete-Anfrage. Es ist möglich, die Menge des verbrauchten Guthabens erheblich zu reduzieren, indem bei einer Änderung der Eingabe ein Timeout eingefügt wird.
Hier ist ein sehr einfaches Beispiel.
Jedes Mal, wenn ein Benutzer mit der Eingabe beginnt, wird das Autocomplete erst nach einer kurzen Verzögerung ausgelöst. Die Verzögerung von 250 ms kann verringert werden, damit das Autocomplete häufiger ausgelöst wird. Wenn der Benutzer schnell „Toronto“ eingibt, wird nur ein einziger Autocomplete-Aufruf ausgeführt, anstatt 8, wenn der Benutzer zögert.
Wir haben festgestellt, dass die zeitgesteuerte Verzögerung am besten funktioniert. Ein entscheidender Punkt dabei ist, sicherzustellen, dass die Benutzeroberfläche während der Eingabe anzeigt, dass eine Suche stattfindet. In unserem Fall verwenden wir ein animiertes Ladesymbol (Spinner). Wenn der Benutzer schnell tippt und keine Ergebnisse sieht, gibt ihm das animierte Ladesymbol genügend Pause, um die Ergebnisse abzuwarten.
Es ist anzumerken, dass die Implementierung dieser Methode mit den aktuellen Nutzungsbedingungen konform ist. Diese Methode drosselt im Wesentlichen lediglich die Anzahl der ausgehenden Autocomplete-Aufrufe des Benutzers.
Wenn Sie Ihre Google-Lizenz mit der Scribble Maps API nutzen, nehmen wir einige dieser Optimierungen standardmäßig vor. Wenn Sie jedoch Ihre eigene benutzerdefinierte Implementierung direkt auf der Google Maps API aufbauen, gibt es eine einfache Anpassung, mit der Sie Autocomplete-Guthaben sparen können.
Die Standard-Autocomplete-Funktion sendet bei jeder Änderung der Eingabe eine Autocomplete-Anfrage. Es ist möglich, die Menge des verbrauchten Guthabens erheblich zu reduzieren, indem bei einer Änderung der Eingabe ein Timeout eingefügt wird.
Hier ist ein sehr einfaches Beispiel.
var acTimeOut;
textSearchInput.onkeyup = function() {
clearTimeout(acTimeout);
acTimeout = setTimeout(function() {
//put auto-complete calls in here
}, 250);
}
Jedes Mal, wenn ein Benutzer mit der Eingabe beginnt, wird das Autocomplete erst nach einer kurzen Verzögerung ausgelöst. Die Verzögerung von 250 ms kann verringert werden, damit das Autocomplete häufiger ausgelöst wird. Wenn der Benutzer schnell „Toronto“ eingibt, wird nur ein einziger Autocomplete-Aufruf ausgeführt, anstatt 8, wenn der Benutzer zögert.
Wir haben festgestellt, dass die zeitgesteuerte Verzögerung am besten funktioniert. Ein entscheidender Punkt dabei ist, sicherzustellen, dass die Benutzeroberfläche während der Eingabe anzeigt, dass eine Suche stattfindet. In unserem Fall verwenden wir ein animiertes Ladesymbol (Spinner). Wenn der Benutzer schnell tippt und keine Ergebnisse sieht, gibt ihm das animierte Ladesymbol genügend Pause, um die Ergebnisse abzuwarten.
Es ist anzumerken, dass die Implementierung dieser Methode mit den aktuellen Nutzungsbedingungen konform ist. Diese Methode drosselt im Wesentlichen lediglich die Anzahl der ausgehenden Autocomplete-Aufrufe des Benutzers.