【发布时间】:2012-02-10 07:03:38
【问题描述】:
我在每次点击时都有一个自动完成字段搜索,我让它每 500 毫秒发送一次请求。
但有时搜索控制器会在大约 5 秒后回复。问题是每个请求还在堆栈中,即使客户端不再搜索,所有请求也会完成。
这使客户端等待基于 ajax 的进一步操作,直到完成所有先前的请求。 我试图实现的解决方案是在 ajax 中使用 .abort() 方法:
var currentRequest =null;
function keyUp(...){
if(currentRequest!=null){
currrentRequest.abort();
}
currentRequest = $.get(...);
尽管如此,在服务器端,控制器仍然接收到所有挂起的请求,这些请求被 .abort() 取消。
有什么方法可以检测客户端连接状态以避免服务器端处理请求?
【问题讨论】:
-
您是否使用任何 JavaScript 库进行自动完成等?
-
我正在使用自己的自动完成@Tr1stan,这是一个不同的问题,因为,我正在使用 .abort() 方法,它正在工作,但是,我还必须取消服务器端的请求,检测到它已从客户端中止,这是我的问题。
标签: ajax asp.net-mvc c#-4.0