yeyeye
2016-01-28 00:10:21 +08:00
1 楼的方式应该是这样
查询按钮一点击下去,马上蹦出一个提示,正在查询,然后通过 ajax 去获取这个很慢的数据,获取到之后去掉提示,展示数据,这样的话有一个缺点,有一个请求一直卡在那里
这个问题我在很久很久很久之前就考虑过
我说一个可行的方式(全程用 ajax )
1.客户端查询的直接展示一个查询中的提示,然候伴随发送一个随机字符串,作为这次查询的依据,请求发送成功后,直接断掉这个连接
2.服务器收到这个随机字符串,放到数据库里,并标记状态为正在处理,然后进行查询,忽略掉前端终止页面而停止脚本,查询完成后把数据存入这个数据库的相同标记里,把状态字段改为查询成功,如有故障无法完成,则标记状态为故障
3.客户端在之前做了断开操作后,开始每 N 秒向服务器发起查询,查询数据库里的标记(附带上前面的那个随机字符串)。若完成则返回结果展示给用户
1.可能不知道如何断开一个连接,我也不知道怎么断,如果前台不会就用后台实现吧, WP 就是这样执行 cron 的,发送一个请求到 cron 页面,然后直接断掉,让它异步的慢慢处理,不再管了,人家是开源的,你自己去看。
2.可以选择发送随机字符串作为查询凭证,也可以由服务器发放一个 ID 给客户端作为凭证
3.这个没什么技术含量了