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

Web程序数据库 Web程序数据库 主题:1214 回复:2505

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

虐人心 发布于 2016-10-14 字数 313 浏览 1016 回复 2

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

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

发布评论

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

支持 Markdown 语法,需要帮助?

评论(2

偏爱自由 2017-10-16 2 楼

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

想挽留 2017-08-06 1 楼

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

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