Scribble Maps Blog
Desenvolvedores: Economizando Créditos da API do Google com Autocomplete
Há muitos vencedores com a nova precificação de API do Google. No entanto, se o seu aplicativo estiver usando todo o conjunto de funcionalidades de mapeamento e você tiver muitos usuários, poderá notar que seu saldo começará a diminuir rapidamente. Duas funções que consumirão diretamente do seu saldo e não estão sujeitas à cota diária gratuita são o autocomplete e a pesquisa de locais.
Se você usa sua licença do Google com a API do Scribble Maps, nós fazemos algumas dessas otimizações de forma nativa, mas se você estiver construindo sua própria implementação personalizada diretamente sobre a API do Google Maps, há uma atualização simples que você pode fazer para economizar alguns créditos de autocomplete.
A funcionalidade padrão de preenchimento automático enviará uma solicitação de autocomplete a cada alteração na entrada. É possível reduzir significativamente a quantidade de créditos utilizados inserindo um tempo de espera (timeout) quando a entrada é alterada.
Aqui está um exemplo muito básico.
Assim, toda vez que um usuário começar a digitar no campo de entrada, o autocomplete não será acionado até que haja um breve atraso. O atraso de 250ms pode ser reduzido para fazer o autocomplete ser acionado com mais frequência. Se o usuário digitar rapidamente "Toronto", apenas uma chamada de autocomplete será executada em vez de 8 quando o usuário hesitar.
Achamos que o atraso programado funciona melhor. Um ponto crítico para isso é garantir que a interface do usuário indique que uma pesquisa está ocorrendo enquanto eles digitam. No nosso caso, usamos um indicador de carregamento animado (spinner). Dessa forma, se o usuário estiver digitando rapidamente e não estiver vendo os resultados, o spinner animado dará a ele uma pausa suficiente para ver os resultados.
Vale ressaltar que a implementação disso está em conformidade com os termos de uso atuais deles. Tudo o que esse método essencialmente faz é limitar a quantidade de chamadas de autocomplete enviadas pelo usuário.
Se você usa sua licença do Google com a API do Scribble Maps, nós fazemos algumas dessas otimizações de forma nativa, mas se você estiver construindo sua própria implementação personalizada diretamente sobre a API do Google Maps, há uma atualização simples que você pode fazer para economizar alguns créditos de autocomplete.
A funcionalidade padrão de preenchimento automático enviará uma solicitação de autocomplete a cada alteração na entrada. É possível reduzir significativamente a quantidade de créditos utilizados inserindo um tempo de espera (timeout) quando a entrada é alterada.
Aqui está um exemplo muito básico.
var acTimeOut;
textSearchInput.onkeyup = function() {
clearTimeout(acTimeout);
acTimeout = setTimeout(function() {
//coloque as chamadas de autocomplete aqui
}, 250);
}
Assim, toda vez que um usuário começar a digitar no campo de entrada, o autocomplete não será acionado até que haja um breve atraso. O atraso de 250ms pode ser reduzido para fazer o autocomplete ser acionado com mais frequência. Se o usuário digitar rapidamente "Toronto", apenas uma chamada de autocomplete será executada em vez de 8 quando o usuário hesitar.
Achamos que o atraso programado funciona melhor. Um ponto crítico para isso é garantir que a interface do usuário indique que uma pesquisa está ocorrendo enquanto eles digitam. No nosso caso, usamos um indicador de carregamento animado (spinner). Dessa forma, se o usuário estiver digitando rapidamente e não estiver vendo os resultados, o spinner animado dará a ele uma pausa suficiente para ver os resultados.
Vale ressaltar que a implementação disso está em conformidade com os termos de uso atuais deles. Tudo o que esse método essencialmente faz é limitar a quantidade de chamadas de autocomplete enviadas pelo usuário.