xtensions中很重要的一个控件,其强大之处在于不用编写任何客户端脚本,只要在一个页面上添加几个Up2datePanel 控件和一个ScriptManager 控件就可以自动实现局部更新。UpdatePanel 的工作依赖于ScriptManager 服务端控件和客户端PageRequest2Manager 类,当ScriptManager 中允许页面局部更新时,它会以异步的方式回传给服务器,与传统的整页回传方式不同的是只有包含在UpdatePanel 中的页面部分会被更新,在从服务端返回HTML 之后,PageRequestManager 会通过操作DOM 对象来替换需要更新的代码片段。当用户第一次打开页面时,客户端浏览器会发出Request 请求,服务器收到请求后发送页面的所有内容给客户端,客户端打开页面后,点击UpdatePanel 内Submit 按钮,客户端发出一个异步回传,而服务器也会返回局部刷新的内容,而不是整个页面的内容,大大减少了网络传输的数据量,降低了服务器的负担。 1. 3 Timer 控件 服务器端的Timer 控件用于重复地每隔一段时间执行某个操作,它很有意义的一个用途就是每隔一段时间更新一次某UpdatePanel 控件中的内容。 1. 4 UpdateProgress 控件 该控件可以在页面执行异步操作时显示信息以提示用户页面正在进行局部更新。在传统的Web应用程序中,浏览器的状态栏将指示页面加载的状态,但在局部更新的Ajax 模型中,状态栏不再发生变化, 所以ASP. NET Ajax 框架中提供了Up2dateProgress 服务器控件以弥补不足。
2 原有毕业设计管理系统的缺点分析
原有毕业设计管理系统是利用ASP. NET2. 0开发技术结合SQL Server2000 数据库开发而成,系统采用了典型的三层架构设计, 并大量使用了ASP. NET2. 0 开发环境提供的丰富、强大的服务器端控件,开发的效率得到显著提高。但是,随着系统在计算机学院两年来的使用,系统的访问量不断增加,系统的缺点也逐渐暴露出来,其主要体现在以下两个方面: 2.1 系统访问速度较慢 ASP. NET2. 0 开发环境提供了大量的服务器端控件,这些控件为WEB 应用程序的开发提供了强大、全面的支持,使得业务逻辑层的编码工作变得高效简单,但是,大量的在页面中使用服务器端控件无疑会加大客户端(浏览器) 和服务器端之间的数据传送,而B/ S 结构的应用程序采用的固有模式“提交/ 等待/ 重新显示”决定了数据在传送过程中很多无效的数据反复地在服务器和客户端之间进行往返传输,严重地影响了服务器的性能,使得大量的网络带宽被这些无效数据的往返传输占用了。随着系统访问量的逐渐增大,系统的访问速度较慢的问题显得越来越突出。 2.2 页面不能完成局部自动刷新 在系统使用的过程中,发现有些页面需要自动刷新。比如学生在进行在线选题时,同一时间会有很多同学在浏览可选的毕业设计题目,在页面不能自动刷新的情况下,极其容易出现以下情况:甲同学在打开可选题目的页面浏览题目过程中,某题目实际已被另外一位乙同学选中,但甲同学的页面并不会自动刷新,这时,这个题目还在甲同学的浏览器页面上,而且显示的状态是可选状态,如果甲同学也去恰巧选择乙同学刚才选过的同一题目,系统就很容易出现问题,甚至会导致选题结果的混乱。在传统的处理方式中,可以采用手动刷新整个页面或者以编码的方式使得页面定期刷新(比如设置为1 秒) 的方式来达到页面定时刷新的效果,但这种方式在刷新过程中回传的是整个页面,严重影响系统的执行效率,同时也会给服务器造成很大的负担,造成网络带宽的严重浪费,随着用户数量的逐渐增大,这种传统处理方式的弊端显得更加的严重。
3 系统的改进和实现
意识到原有毕业设计管理系统的不足, 采用ASP. NET2. 0 Ajax Extension 提供的先进的开发手段,对原有系统进行了改进。 (1) 引入UpdateProgress 服务器控件,显示页面异步更新的过程,提高了用户的体验,同时使得系统变得更加人性化。例如可以为加载或者刷新过程较慢的UpdatePanel 添加一个UpdateProgress 控件,提示用户信息正在更新中,实现的代码如下: < asp : UpdateProgress ID =“UpdateProgress1” runat = “server ” AssociatedUpdatePanel = &
|