从网页轮询数据库? - ASP.NET

时间:2010-01-06 23:22:34

标签: .net asp.net ajax

这是我想要做的。我有一个网站,允许用户提交在服务选择和处理的作业表中排队的请求。我在表中有一个状态列,表示请求是排队等待处理还是由服务当前处理,或者服务已完成处理请求。整个过程需要几分钟。

我有一个状态ASP.NET页面,我需要在该页面中实时显示其请求的当前状态。我想显示某种动画并表示当前状态。我可以这样做的一种方法是每隔x秒刷一次meta http,检查请求的状态(我猜这是Expedia,Priceline这样的网站如何做到的?)

我想阻止完整的页面刷新,并寻找AJAX / JQuery解决方案。我该如何实现?轮询正确的方法吗?

4 个答案:

答案 0 :(得分:4)

通过AJAX进行轮询是您最简单,最简单的需求。如果你知道它需要的时间的上限和下限,那么我可能只需要动画运行一段时间,然后为特殊情况做一些事情。

其他人也这样做了:

请参阅:http://news.ycombinator.com/item?id=946165http://www.chrisharrison.net/projects/progressbars/ProgBarHarrison.pdf

答案 1 :(得分:0)

如果您不希望网页在服务器上连续运行,轮询可能是最好的方法......

但是,如果这不打扰你,那么你可能想看一下[similar answer]我给另一个允许你动态更新页面的问题......浏览器会出现继续“加载”页面直到完成。

答案 2 :(得分:0)

您是否查看过对服务器的异步调用?这将允许您将一个调用放入服务器而不是等待结果,当调用完成时将触发一个事件将触发客户端页面上的方法,这听起来像你需要的,你不会有做轮询,这里有更多信息:

http://msdn.microsoft.com/en-us/magazine/cc163725.aspx

希望这有帮助。

答案 3 :(得分:0)

您可能希望查看“长轮询”,也称为Comet。

这个想法是你从客户端发出异步Ajax请求。在服务器端,您将请求挂起,直到某些状态发生更改(以便报告新内容)。然后你发布请求,它会返回更新的信息。

这比纯轮询具有优势,因为请求仅在某些内容发生变化时才会返回。它也可能看起来更具响应性,因为它主要由服务器端驱动。