轮询与AsyncCallback回调 - 慢速Web服务的最佳方法?

and*_*yuk 7 asp.net jquery asynchronous web-services

我有一个使用AJAX获取页面搜索结果的网页.在服务器端,我正在查询非常慢的Web服务 - 20秒到2分钟.

据我了解,我的选择是轮询或长时间运行请求.

AsyncCallback似乎是理想的,因为一旦Web服务响应就会返回结果,并且线程不会在服务器端被阻止.

有没有更好的方法来做到这一点?您是否知道jQuery中长时间运行HTTP请求的任何问题?

更新:是的,我会在可能的情况下缓存来自Web服务的响应.我对我正在查询的外部Web服务没有任何控制权.

Rad*_*094 2

我们使用 AsyncCallbacks 进行服务器轮询,通常会在 4:30 - 5 分钟内响应,并且系统运行得很好。

值得一提的是,除了如果收到太多请求时 IIS 的工作线程池不会耗尽之外,您不会获得任何好处(性能、响应时间等):即。如果我们每分钟收到 2 个请求,通常会有 10 - 12 个待处理请求。在这种情况下,AsyncCallback 将没有任何区别。如果我们每分钟收到 100 个请求,这意味着 500 - 600 个待处理连接,因此异步是必须的。这只是关于管理线程池。