您所在的位置: 首页>>读书频道>>设计开发>>.Net系列>>

1.4 Ajax应用场景

http://book.51cto.com  2008-05-07 21:43  施伟伟 张蓓  人民邮电出版社  我要评论(0)
  • 摘要:《征服Ajax——Web 2.0 快速入门与项目实践(.net)》的案例经过编者的精心设计,尽可能减少与Ajax无关的内容,让读者以最快的速度掌握Ajax开发技术。本文介绍了Ajax应用场景。
  • 标签:Ajax  .net

1.4  Ajax应用场景

Ajax不是万能的,在适宜的场合使用Ajax,才能充分发挥它的长处,改善系统性能和用户体验,绝不可以为了技术而滥用。Ajax的特点在于异步交互、动态更新Web页面,因此它的适用范围是交互较多、频繁读取数据的Web应用。现在来看几个Ajax的应用实例,读者可以了解如何使用Ajax技术改进现有的Web应用系统。

1.4.1  场景1:数据验证

在填写表单内容时,需要保证数据的惟一性(例如新用户注册填写的用户名),因此必须对用户输入的内容进行数据验证。数据验证通常有两种方式:一种是直接填写,然后提交表单,这种方式需要将整个页面提交到服务器端进行验证,整个过程不仅时间长而且造成了服务器不必要的负担;第二种方式是改进了的验证过程,用户可以通过点击相应的验证按钮,打开新窗口查看验证结果,但是这样需要新开一个浏览器窗口或者对话框,还需要专门编写验证的页面,比较耗费系统资源。而使用Ajax技术,可以由XMLHttpRequest对象发出验证请求,根据返回的HTTP响应判断验证是否成功,整个过程不需要弹出新窗口,也不需要将整个页面提交到服务器,快速而又不加重服务器负担。

1.4.2  场景2:按需取数据

分类树或树形结构在Web应用系统中使用得非常广泛,例如部门结构、文档的分类结构常常使用树形控件呈现。以前每次对分类树的操作都会引起页面重载,为了避免这种情况出现,一般不采用每次调用后台的方式,而是一次性将分类结构中的数据全部读取出来并写入数组,然后根据用户的操作,用JavaScript来控制节点的呈现,这样虽然解决了操作响应速度、不重载页面以及避免向服务器频繁发送请求的问题,但是如果用户不对分类树进行操作或者只对分类树中的一部分数据进行操作的话(这种情况是很普遍的),那么读取的数据中就会有相当大的冗余,浪费了用户的资源。特别是在分类结构复杂、数据量庞大的情况下,这种弊端就更加明显了。

现在应用Ajax改进分类树的实现机制。在初始化页面时,只获取第一级子分类的数据并且显示;当用户点开一级分类的某一节点时,页面会通过Ajax向服务器请求当前分类所属的二级子分类的所有数据;如果再继续请求已经呈现的二级分类的某一节点时,再次向服务器请求当前分类所属的三级子分类的所有数据,以此类推。页面会根据用户的操作向服务器请求它所需要的数据,这样就不会存在数据的冗余,减少了数据下载总量。同时,更新页面时不需要重载所有内容,只更新需要更新的那部分内容即可,相对于以前后台处理并且重载的方式,大大缩短了用户的等待时间。

1.4.3  场景3:自动更新页面

在Web应用中有很多数据的变化是十分迅速的,例如最新的热点新闻、天气预报以及聊天室的聊天内容等。在Ajax出现之前,用户为了及时了解相关的内容必须不断刷新页面,查看是否有新的内容变化,或者页面本身实现定时刷新的功能(大多数聊天室页面就是这样做的)。有可能会发生这种情况:有一段时间网页的内容没有发生任何变化,但是用户并不知道,仍然不断地刷新页面;或者用户失去了耐心,放弃了刷新页面,却很有可能在此时有新的消息出现,这样就错过了第一时间得知消息的机会。

应用Ajax可以改善这种情况,页面加载以后,会通过Ajax引擎在后台进行定时的轮询,向服务器发送请求,查看是否有最新的消息。如果有则将新的数据(而不是所有数据)下载并且在页面上进行动态的更新,通过一定的方式通知用户(实现这样的功能正是JavaScript的强项)。这样既避免了用户不断手工刷新页面的不便,也不会因为重复刷新页面造成资源浪费。


回书目   上一节   下一节
上一篇: 1.3 谁在使用Ajax 下一篇: 1.5 Ajax应用实例
专题:ASP.NET 2.0基础开发指南
.NET移动与嵌入式技术专题
.NET Framework新手入门专题
VS.NET实用开发专题
ADO.NET实用技巧专题
 
 验证码: (点击刷新验证码)   匿名发表
  • Visual C++ 完全自学宝典

  • 作者:强锋科技,朱洪波
  • Visual C++ 6.0是微软公司为程序人员提供的Visual Studio 6.0工具套件中的重要组成部分。本书由浅入深地介绍使用Visual C++ 6.0..
Copyright©2005-2008 51CTO.COM 版权所有