2011-03-02 144 views
5

我一直在用户点击生成AJAX请求的网站上遇到困难,例如,当响应来临时有一些视觉效果。有时会发生用户不会等到请求完成(尽管他看到加载指示符)并开始点击其他元素,如疯狂。因为原则上我不能也不想禁用这种可能性,所以我尝试过(或多或少地成功)以确保在任何时候发起新的请求时,先前的请求被中止(客户端),并且其处理程序不再称为 - 最后一个请求最后获胜。用于服务器端AJAX请求的排队机制

虽然在客户端有些成功,但我现在想知道是否有某种方法来模拟服务器上的类似行为。由于我无法真正杀死之前的请求,只能断开它,它仍然会运行到最后并消耗宝贵的资源。如果用户点击20个元素,他只会看到最后一个请求的结果,但服务器上仍然会有20个请求浪费CPU来做无用的工作。

有什么方法可以实现ASP.NET/IIS中同一资源的多个请求的最后一个策略?我猜这些请求无论如何都是在内部排队的,而我需要的是当IIS试图将下一个请求出队时,只需看看是否有其他人,并且只服务于同一会话中的最后一个请求。

回答

1

我知道在IIS上的ASP,你可以测试isClientConnected,并在客户端断开连接时中止。

我相信大部分平台都会有类似的东西存在。

但我不知道它如何与AJAX?

+0

HttpContext.Reponse真的有这个属性,似乎它也工作:) – 2011-03-03 12:08:09