Scribble Maps Blog
Ontwikkelaars: Google API-tegoeden besparen met Autocomplete
Er zijn veel winnaars met de nieuwe API-prijzen van Google. Als uw app echter gebruikmaakt van de volledige suite aan kaartfunctionaliteiten en u veel gebruikers heeft, zult u merken dat uw tegoed snel begint te slinken. Twee functies die rechtstreeks van uw tegoed afschrijven en niet onder het dagelijkse gratis quotum vallen, zijn autocomplete en place search.
Als u uw Google-licentie gebruikt met de Scribble Maps API, voeren wij een aantal van deze optimalisaties standaard uit, maar als u uw eigen aangepaste implementatie rechtstreeks op de Google Maps API bouwt, is er een eenvoudige update die u kunt uitvoeren om wat autocomplete-tegoeden te besparen.
De standaard autocomplete-functionaliteit verzendt bij elke wijziging in de invoer een autocomplete-verzoek. Het is mogelijk om de hoeveelheid verbruikte tegoeden aanzienlijk te verminderen door een time-out in te stellen wanneer de invoer verandert.
Hier is een heel eenvoudig voorbeeld.
Dus elke keer dat een gebruiker begint te typen in het invoerveld, wordt de autocomplete pas geactiveerd na een korte vertraging. De vertraging van 250 ms kan worden verkort om de autocomplete vaker te laten reageren. Als de gebruiker snel "Toronto" typt, wordt er slechts één autocomplete-aanroep uitgevoerd in plaats van 8 wanneer de gebruiker aarzelt.
We merken dat de getimede vertraging het beste werkt. Een cruciaal punt hierbij is om ervoor te zorgen dat de gebruikersinterface aangeeft dat er een zoekopdracht wordt uitgevoerd terwijl ze typen. In ons geval gebruiken we een geanimeerde spinner. Op deze manier zal de geanimeerde spinner, als de gebruiker snel typt en nog geen resultaten ziet, hem voldoende pauze geven om de resultaten te zien.
Er dient te worden opgemerkt dat het implementeren hiervan in overeenstemming is met hun huidige gebruiksvoorwaarden. Wat deze methode in wezen doet, is het beperken van het aantal uitgaande autocomplete-aanroepen van de gebruiker.
Als u uw Google-licentie gebruikt met de Scribble Maps API, voeren wij een aantal van deze optimalisaties standaard uit, maar als u uw eigen aangepaste implementatie rechtstreeks op de Google Maps API bouwt, is er een eenvoudige update die u kunt uitvoeren om wat autocomplete-tegoeden te besparen.
De standaard autocomplete-functionaliteit verzendt bij elke wijziging in de invoer een autocomplete-verzoek. Het is mogelijk om de hoeveelheid verbruikte tegoeden aanzienlijk te verminderen door een time-out in te stellen wanneer de invoer verandert.
Hier is een heel eenvoudig voorbeeld.
var acTimeOut;
textSearchInput.onkeyup = function() {
clearTimeout(acTimeout);
acTimeout = setTimeout(function() {
//put auto-complete calls in here
}, 250);
}
Dus elke keer dat een gebruiker begint te typen in het invoerveld, wordt de autocomplete pas geactiveerd na een korte vertraging. De vertraging van 250 ms kan worden verkort om de autocomplete vaker te laten reageren. Als de gebruiker snel "Toronto" typt, wordt er slechts één autocomplete-aanroep uitgevoerd in plaats van 8 wanneer de gebruiker aarzelt.
We merken dat de getimede vertraging het beste werkt. Een cruciaal punt hierbij is om ervoor te zorgen dat de gebruikersinterface aangeeft dat er een zoekopdracht wordt uitgevoerd terwijl ze typen. In ons geval gebruiken we een geanimeerde spinner. Op deze manier zal de geanimeerde spinner, als de gebruiker snel typt en nog geen resultaten ziet, hem voldoende pauze geven om de resultaten te zien.
Er dient te worden opgemerkt dat het implementeren hiervan in overeenstemming is met hun huidige gebruiksvoorwaarden. Wat deze methode in wezen doet, is het beperken van het aantal uitgaande autocomplete-aanroepen van de gebruiker.