PHP-实时查询或者自动完成中如何优化请求发送频率?

发布于 2016-10-14 18:58:23 字数 179 浏览 1141 评论 2

在实时查询或者自动完成功能中,一般的处理是,用户每输入一个字符,就像后台发起一次请求。
比如搜索dewen这个文字,就得发送5次请求,但是其实前4次请求都是没有必要的。
请问如何优化这种方式?

好像有文章说quora中是由后台来控制,如果像quora那样由后台来控制,又该如何来做使得不会增加服务器端的负载?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

偏爱自由 2017-10-16 07:36:10

不清楚quora的方案,给出我的一个思路:
每次输入完成(比如keyup之后),使用setTimeOut发起一个延迟的ajax调用,如果在短时间内(比如2s)又有新的输入(keyup),就删掉原有的setTimeOut,重置请求。
这样就不会因为连续的输入发起多次无用的请求了。

想挽留 2017-08-06 12:07:45

一般情况下会在后台来做优化,比如在很短的时间内,连续收到一个用户2个请求,就丢弃前一个请求不处理,直接处理后一个请求并返回。

另外,如果用户行为相似且比较集中,在后台保存请求结果也是提高效率的一种方法。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文