2009-10-28 36 views
0

我在ASP.NET中开发了一个Web应用程序,用户可以做的事情之一是一项长期任务。基本上,该任务将收集数据库中的所有数据并将其转换为特定的XML格式。然后这个XML再次作为数据的“快照”存储在数据库中。 (因此,它不会将XML返回给用户。)在长时间的动作中向用户提供反馈

不幸的是,此任务需要几分钟的时间来处理。这不是一个真正的问题,除非用户可能变得不耐烦,并且可能会尝试制作第二个甚至第三个快照,因为似乎没有任何事情发生。

所以我需要一个简单的方法来向用户提供一个简单的反馈,通知他当前的动作,所以他知道应用程序正在做什么。 “快照”构建器已包含一个事件,该事件将生成有关其当前操作的消息,因此我需要做的就是找到一种方法将此事件连接到向用户提供实时反馈的方式。我不能使用第三方组件,只有属于VS2008的组件。 (管理层非常担心第三方代码可能存在许可问题。)所以我必须自己写一些东西,在Ajax中。

我是一位经验丰富的程序员。不过,这将是我的第一个Ajax项目,所以我需要清楚地解释它的工作原理。那么,我如何通过简单易懂的步骤向用户提供这样的反馈?

回答

2

要对此请求使用AJAX,那么您应该查看UpdateProgress control并将AssociatedUpdatePanelID设置为初始化长时间运行过程的页面上的UpdatePanel的Id。

Here是使用的UpdatePanel

Here的一个很好的例子是一个Visual Studio解决方案演示如何使用的UpdateProgress和UpdatePanel的一起

我曾经在一个项目中也有类似的问题,AJAX是可用的和我之前通过使用BusyBox解决了这个问题,结果在我的应用程序中工作得非常好。

2

好吧,既然你是新人,我不会让你很难学习先进的更有效的方法,但你可以在asp.net ajax库中使用UpdateProgress。当ajax在后台执行某些操作时,UpdateProgress将显示一条自定义消息,通知用户该页面正在执行某些操作。

所以你基本上可以使用UpdatePanel来启用你的asp.net页面中的ajax和UpdateProgress来向用户显示进度。

可以在视频格式找到更多的信息:http://www.asp.net/learn/ajax-videos/

但是如果你想学习不同的方式来推进:

我不建议你使用微软的方式,使阿贾克斯在你的ASP。网页,而是可以在页面中使用jQuery ajax和Web服务来提供更高效更快的页面。

更多:jQuery Ajax Library

微软的Visual Studio中的jQuery所以在JQuery中编写代码提供智能感知现在更容易。

P.s:我推荐你是完全免费且开源的。

+0

我自己没有使用开源的问题,但最终产品是一个闭源项目,我们可能会分发给其他人。因此,我们需要特别小心可能发生的许可冲突。因此,未经管理层批准,我们不使用任何第三方产品。 (不管它是否是开源的,他们想先检查它的许可证。) – 2009-10-28 10:30:10

相关问题