在ASP.NET中实现长时间运行的搜索

时间:2010-03-12 11:11:48

标签: asp.net search

我正在asp.net 3.5中构建一个搜索页面。搜索需要一些时间(几秒到几分钟)。目前我使用AsyncMethodCaller来调用Search方法。 AsyncMethodCaller方法将搜索结果存储在Session中。我使用Ajax计时器来检查搜索方法是否完成然后显示结果。

实施此方案的最佳方法是什么?

3 个答案:

答案 0 :(得分:1)

您可以尝试reactive extensions for .NET。我还没有尝试过,但看起来很有希望。

答案 1 :(得分:1)

我会使用ASP.NET Ajax框架中的Page方法。很容易将它们称为异步,并在完成后进行回调。

看看here。 (Async在帖子的同意中解释)

答案 2 :(得分:0)

这对我来说似乎完全没问题,还是我错过了问题的重点?

我最近在PHP前端做了类似的事情,搜索大约需要30秒。

我将实际的搜索逻辑实现为控制台应用程序。 Web服务调用控制台应用程序来执行搜索,并在会话中记录处理搜索的应用程序的进程ID。

前端的AJAX计时器每秒轮询一次服务器,检查该进程ID是否仍在运行。如果它完成了,它会查找数据库(应用程序写入结果的位置)并将它们发送回前端。

如果禁用Javascript,则简单的元刷新会做同样的事情。