快速搜索有时会对每个已输入的字符发出请求,导致403错误

重现步骤:

  1. 在某个类别中打开快速搜索输入框
  2. 点击“在此类别中”选项
  3. 输入几个字母
  4. 每输入一个字符就会执行一次搜索查询,没有等待时间,导致 403 错误

当未注册时似乎更容易发生这种情况,可能是因为不同的速率限制。

search rate limit bug

备注:如果手动输入 #categoryname 或在删除搜索查询以执行另一次搜索后,则不会发生这种情况。

4 个赞

错误仍然存在,我在网络选项卡中看到了所有请求,但有一段时间没有遇到错误消息了。是否为用户增加了每秒最大请求数?

另外,值得注意的是,虽然此错误发生在 meta.discourse.orgtry.discourse.org 上,但并未发生在我的实例上。

也许这与某些设置有关?

3 个赞

将把调查列为中等优先事项,因为这有可能不必要地带来过多流量。

2 个赞

这取决于输入速度。如果你打字足够快,就不会为每次按键都发送请求。该组件会对请求发送进行防抖处理,间隔为 400 毫秒;如果用户的输入速度低于这个阈值(即输入间隔超过 400 毫秒),则不会发送请求。在 macOS 上的 Safari、Firefox 和 Chrome 浏览器中测试,效果均良好。

你可以将此作为证明:

CleanShot 2025-03-25 at 09.33.00@2x

在输入 “Customization > Theme component data” 和 “Customization > Theme component data expl” 之间,仅发送了两个请求,也就是说中间的字符没有触发任何请求。

2 个赞