2. 使用Visual Studio 2005准备开发ASP.NET AJAX应用
3. 创建一个ASP.NET AJAX Futures 的启动模型
4.1 添加ScriptManager and UpdatePanel
4.3 使用AutoCompleteExtender异步调用Web service
4.4 使用AJAX Control Toolkit中的例子
4.6 在AJAX Framework中使用ASP.NET’s Profile服务
介绍:由于Web浏览器在UpdatePanel执行异步调用的时候没有提供任何的反馈。所以我们需要告诉用户应用程序发生了什么。如果用户在提交一个异步调用的时候没有得到反馈,他会继续等待应用程序的响应并疑惑应用程序是否已经发送了数据。ASP.NET AJAX中的UpdateProgress控件正好可以解决这个问题。
测试: 运行解决方案并浏览Shopping页。使用Add to cart功能,在购物车中放入产品并转到Shopping Basket.在Product availability区域,点击Update。这个请求模仿了一个存储管理系统的执行。整个页面保持静止并直到可用的数据返回再刷新整个页面。
让我们看看整个异步调用的过程。
步骤4.2a: 打开Basket.aspx进行编辑。在页面上插入一个UpdatePanel控件。将包括超级链接Proceed to Checkout在内的所有控件放在UpdatePanel内。
图4.2a: 插入UpdatePanel控件的Basket.aspx页面。
测试:运行解决方案并浏览页面Basket.aspx。确定在你的购物车里有几个物品。点击Update。首先,页面并没有任何的反应,等Shopping Basket里的物品都更新完后,页面显示最后的结果。而这正是我们要竭力避免的。现在,关闭浏览器。
步骤4.2b: 在Visual Studio中,打开MasterPage.master并且在表格的右上角的空白区域增加一个UpdateProgress控件。在里面放置一个图片控件并设置下列属性和值:
ImageUrl
~/images/wait.gif
在图片中输入并显示文本"updating… please wait."
图4.2b: MasterPage.master中的一个UpdateProgress控件
打开UpdateProgress控件的属性页。正如你所看到的,在Behaviour(行为)下的DisplayAfter属性值是500。这表明该控件不会被触发直到异步调用的请求时间超过了500毫秒(1/2秒)。
图4.2c:UpdateProgress1控件中的DisplayAfter属性
测试: 运行解决方案并浏览Shopping页。使用Add to cart功能,在购物车中放置几个产品并浏览Shopping Basket.在Product availability区域,点击Update,你会看到,UpdateProgress控件显示了页面在等待异步请求的响应。现在,关闭浏览器。