【发布时间】:2013-05-29 09:34:33
【问题描述】:
我目前正在开发一个拥有庞大数据库的 CRM 系统。 如果用户想搜索一个客户,他可以使用 ajax 搜索。每次他在搜索字段中更改某些内容时,当呼叫未决时,旧呼叫将被取消,新呼叫将被发送到服务器。 我的问题是,服务器端的 php 进程继续运行。因此,如果用户开始输入地址,则会启动并取消多个请求,服务器需要越来越多的时间来响应。
当ajax调用被取消时,是否可以取消正在运行的php进程? 或者在服务器端是否有可能的解决方案,以检测来自同一用户的搜索请求是否正在运行并在启动新请求之前将其取消?
提前感谢您的回答。
【问题讨论】:
-
您可以限制需要在搜索框中填写的数字字符,或者在搜索框出现时使用 jQuery ajax 进行搜索。
-
如果只有用户点击“搜索”按钮或点击回车键,您应该开始搜索。
-
如果执行搜索查找的时间过长,以至于进程在多次运行时会导致服务器宕机,那么您需要优化搜索例程,而不是试图杀死已经运行的进程。在搜索列上放一个键,获取结果需要几分之一秒