【问题标题】:How to minimize amount of requests for Google API (places) autocomplete?如何最大限度地减少对 Google API(地点)自动完成的请求量?
【发布时间】:2015-03-11 01:50:45
【问题描述】:

我正在使用 google API - 在AutoCompleteTextView 中自动填充位置的位置。我做了几个测试,大概 20 次搜索,在我的 google devs 个人资料中,写着我已经提出了 200 个 API 请求。

我知道每次我输入内容或编辑输入的文本时它都会发出请求。但是有什么办法可以减少对服务器的调用量?

其中一个想法是将阈值定义为 3 个字符。

【问题讨论】:

  • 这会让用户非常沮丧。如果您担心使用限制(按照您的比例,100,000 次请求仍然是 10,000 次搜索),您可以考虑在最后一次按键 ping Places 后 等待 0.75 秒。这将减少通话次数。发布您的实施,以便我们了解您在做什么。
  • 我认为你的等待时间的想法实际上就是答案。如果您还有其他问题,请发布为答案,我将其标记为正确的。

标签: android google-api google-places-api


【解决方案1】:

如果你没有找到更好的解决方案(我知道已经很晚了,但我正在做类似的事情,我在这里找到了自己。)

我认为您可以“缓存”以前的结果,将它们放在 ArrayList 中。然后在调用 performFiltering 时在您的适配器中,首先检查您在 Arraylist 中的结果,如果您收到许多类似的项目,请不要向 API 发出请求。我不确定是否清楚,但您至少可以保存几个这样的请求,对于用户而言,自动完成总是令人耳目一新。

希望对你有帮助。

【讨论】:

  • 我已经以某种方式解决了它,不记得如何了。但是,好的,谢谢:)
  • Google 条款中提到d. No Cache or Storae
【解决方案2】:

我认为减少对 Places API 的调用次数的更好实现是在最后一次按键后延迟 0.75 秒。这样可以避免用户在看到 3 个字母后自动完成后,在输入第 5 个字母后坐下来等待的部分混淆。

【讨论】:

  • 看来你可以通过的唯一选项是offset,这是基于字符数而不是时间。
  • @StevenAguilar 您没有将时间作为参数传递。在发送 Places 请求之前,您以编程方式等待 0.75 秒。然而已经 4 年了——Places API 很可能从那以后发生了变化,添加了额外的选项/护栏。
  • @Scott 如何延迟?
猜你喜欢
  • 2011-07-23
  • 2022-12-23
  • 1970-01-01
  • 2015-02-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多