一、前言
【相关文章:网警NetCop入侵检测系统】 【扩展阅读:金盾抗DDOS系统的技术优势】人们不得不等待。事实上,用户在操作计算机时,如果等待时间超过大约200毫秒,他们一般都感到厌烦。当你的基于万维网的应用程序使用一个需要耗费许多秒甚至几分钟的进程时,这可能成为一个问题。显然,你不可能仅通过建立一个进度条对话框或一等待光标就算万事大吉。 【扩展信息:美讯智推出间谍软件终结者----ETS】 幸好,asp.net为此提供了一些不同的解决方案来处理这种相当耗时的进程-具体情况要依赖于要求的交互级别与你愿意处理的复杂程度。本文首先通过一个示例应用程序来说明这个问题并且通过两种方案来运行:一种使用了简单查询技术,而另一种使用一种更高级的ajax解决方案。 千万警惕,在.net框架中已发现存在一些错误的方式。其中之一就是iasynchttphandler-乍看来,它似乎有助于较长网页的请求。然而,这个异步http处理器却是被设计用来释放处理器的-尽管,此时在一页面之上的某些任务需耗费一些时间但是并不需要任何cpu。一个好的例子就是在一页面的中间发出web请求。在这种情况中,异步http处理器是很有效率的。 二、问题 在本文中,我要讨论一个不同的问题。在本示例应用程序中,我创建了一个页面-它用于为五个不同的机场报告当前的温度、风级与另外一些天气信息。web服务要花费大约五秒钟来取得每一项数据。因此,如果我让该页面如图1所示运行,那么在服务器返回一页面前要花费大约一分钟-这对于任何用户都是无法接受的等待时间。560)this.style.width=560; onmousewheel = javascript:return big(this) src="http://images.51cto.com/files/uploadimg/20060107/1122190.jpg" border=1>
图1.等待:最开始的示例应用程序大约需要一分钟来加载页面。这个相当耗时的页面相应的html显示于列表1中。 页面装载事件代码为数据格子创建一个数据集。然后,迅速处理多个机场并且调用该web服务以得到数据。然后,该方法把数据从web服务填充到该数据集并且把它依附于一个格子控件(见图2)。560)this.style.width=560; onmousewheel = javascript:return big(this) src="http://images.51cto.com/files/uploadimg/20060107/1122191.jpg" border=1>
图2.基本的:该示例应用程序的web服务执行一简单的天气状况查询。这个web服务的wsdl是http://www.capeclear.com/airportweather.wsdl。... 下一页