如何最小化 Google API(位置)自动完成的请求量?
How to minimize amount of requests for Google API (places) autocomplete?
我正在使用 google API - 在 AutoCompleteTextView
中自动完成位置的地方。我做了几个测试,大约 20 次搜索,在我关于 google 开发者的个人资料中,写着我已经提出了 200 个 API 请求。
我知道每次我输入内容或编辑输入的文本时它都会发出请求。但是有什么办法可以减少对服务器的调用量吗?
其中一个想法是将阈值定义为 3 个字符。
我认为减少对 Places API 的调用次数的更好实现是在最后一次按键后延迟 0.75 秒。这将避免用户在看到 3 个字母后的自动完成后,在输入第 5 个字母后坐下来等待。
如果你没有找到更好的解决方案(我知道已经很晚了,但我正在做类似的事情,我发现自己在这里。)
我想你可以"cache"以前的结果,把它们放在ArrayList中。然后在您的适配器中调用 performFiltering 时,首先检查您的 Arraylist 中的结果,如果您收到许多类似的项目,请不要向 API 发出请求。我不确定是否清楚,但你至少可以保存几个这样的请求,对于用户端,自动完成总是令人耳目一新。
希望对您有所帮助。
我正在使用 google API - 在 AutoCompleteTextView
中自动完成位置的地方。我做了几个测试,大约 20 次搜索,在我关于 google 开发者的个人资料中,写着我已经提出了 200 个 API 请求。
我知道每次我输入内容或编辑输入的文本时它都会发出请求。但是有什么办法可以减少对服务器的调用量吗?
其中一个想法是将阈值定义为 3 个字符。
我认为减少对 Places API 的调用次数的更好实现是在最后一次按键后延迟 0.75 秒。这将避免用户在看到 3 个字母后的自动完成后,在输入第 5 个字母后坐下来等待。
如果你没有找到更好的解决方案(我知道已经很晚了,但我正在做类似的事情,我发现自己在这里。)
我想你可以"cache"以前的结果,把它们放在ArrayList中。然后在您的适配器中调用 performFiltering 时,首先检查您的 Arraylist 中的结果,如果您收到许多类似的项目,请不要向 API 发出请求。我不确定是否清楚,但你至少可以保存几个这样的请求,对于用户端,自动完成总是令人耳目一新。
希望对您有所帮助。