我正在asp.net 3.5中构建一个搜索页面。搜索需要一些时间(几秒到几分钟)。目前我使用AsyncMethodCaller来调用Search方法。 AsyncMethodCaller方法将搜索结果存储在Session中。我使用Ajax计时器来检查搜索方法是否完成然后显示结果。
实施此方案的最佳方法是什么?
答案 0 :(得分:1)
您可以尝试reactive extensions for .NET。我还没有尝试过,但看起来很有希望。
答案 1 :(得分:1)
我会使用ASP.NET Ajax框架中的Page方法。很容易将它们称为异步,并在完成后进行回调。
看看here。 (Async在帖子的同意中解释)
答案 2 :(得分:0)
这对我来说似乎完全没问题,还是我错过了问题的重点?
我最近在PHP前端做了类似的事情,搜索大约需要30秒。
我将实际的搜索逻辑实现为控制台应用程序。 Web服务调用控制台应用程序来执行搜索,并在会话中记录处理搜索的应用程序的进程ID。
前端的AJAX计时器每秒轮询一次服务器,检查该进程ID是否仍在运行。如果它完成了,它会查找数据库(应用程序写入结果的位置)并将它们发送回前端。
如果禁用Javascript,则简单的元刷新会做同样的事情。