Ajax是Web 2.0最主要的技术组成部分。它的应用大大提高了Web程序的用户体验,增强了网站的用户黏度。所以,现代网站开发中不同程度上采用了这种技术。ASP.NET Ajax是微软公司为ASP.NET程序员提供的官方Ajax解决方案。它为提高Ajax程序开发的效率和Ajax程序的稳定性、兼容性做出了很大的贡献。
本书并没有局限于介绍单纯的ASP.NET Ajax技术,因为微软公司把各种Ajax功能封装成了组件,虽然降低了开发难度,但是不利于理解Ajax的本质,当开发人员要解决一些非常个性化的问题时,单靠ASP.NET Ajax组件是不能解决问题的,必须要自己编写底层代码才能实现具体功能,因此本书更注重提高读者的独立开发能力。本书实例是在.NET平台上实现的各种Ajax效果,读者学会这些实例代码以后,也可以轻松地把实践知识移植到Java、PHP平台上。
如何学习本书
本书是案例开发性质的书籍,读者每学习一章都会有实质性的收获。在出版之前,笔者把这本书给很多Ajax初学者看过,总结出一个规律,如图1所示。

图1 成就感指数
根据图1,笔者建议读者一定要持之以恒地将本书所有章节彻底学习完。如果只学习一部分就自我满足、停滞不前,很可能会半途而废。一旦彻底学完本书,读者就能够独立解决各种问题,胜任Ajax程序员的几乎所有项目开发工作。
本书难度分布
为了让读者能够合理地使用本书,笔者特意绘制了一个难度分布图,读者可以根据图2中的标示进行学习。

图2 难度指数
本书特色
(1)贴近实际:书中所有模块实例均以实际应用为基础,重视培养读者的应用能力。
(2)实例详尽:20多个常用模块的开发几乎覆盖了Ajax程序应用的绝大多数领域。
(3)强调实用:书中的模块都有很高的重用性,读者稍加整理便可应用于实际项目中。
(4)注重效率:书中每个实例的讲解都力求简洁实用,注重图文结合。
(5)实例完整:书中的每个实例都可以单独作为一个项目运行和演示。
(6)分别采用ASP.NET Ajax框架和脚本驱动两种开发方式,即重视开发效率,又强调Ajax原理应用。
(7)开发环境均为微软公司官方最新版本,具有很好的代码可移植性和技术先进性。
本书的内容
本书分为3篇,分别是Ajax技术概述、ASP.NET Ajax组件应用和Ajax非组件开发。其中第一篇包括第1章和第2章;第二篇包括第3章至第5章;第三篇包括第6章至第18章。
第1章介绍了Ajax的概况、Ajax程序的开发模式以及本书的结构。其中重点介绍了Ajax程序的3种开发模式:XMLHTTP+Web Form、XMLHTTP+HttpHandler和Call Back。通过本章的学习,使读者对Ajax有初步认识。
第2章介绍了ASP.NET Ajax的概述和安装。本章对ASP.NET Ajax的主要组成部分、架构及优势进行了分析。并引领读者完成ASP.NET Ajax 1.0的安装,实现Hello Word程序。本章的学习,使读者对ASP.NET Ajax有初步认识。
第3章实现了Ajax GridView模块。本章中主要利用ASP.NET Ajax中的UpdatePanel控件,实现一个完全Ajax化的GridView应用。其中包括常用的数据增、删、改和浏览操作。
第4章实现了聊天室模块。本章中主要利用ASP.NET Ajax中的Timer控件开发聊天室实例。
第5章利用ASP.NET Ajax Control Toolkit中的控件实现一些实用功能。例如,利用Auto CompleteExtender控件实现自动完成的功能;利用NoBot控件实现自动拒绝垃圾发布程序;利用ReorderList控件实现拖曳排序;利用Rating控件实现评分功能;利用Accordion控件实现QQ样式的菜单。
第6章实现常用的注册登录功能。本章包括一个完整的注册、登录实例。详细讲述了客户端和服务器端程序的具体实现,并介绍了一个验证码程序生成方法。
第7章开发一个简易的通信录系统。其功能包括:用户登录、添加联系人信息、浏览联系人信息、修改联系人信息、删除联系人信息、用户注销功能等。
第8章开发一个留言本。其功能包括查看留言、在线留言、在线回复、留言管理等。本章中对XMLHTTP对象进行了封装。本书中下面章节对XMLHTTP对象的调用基本上都是基于本章的这个封装文件。
第9章介绍分页模块的实现。数据分页程序应该满足两方面的要求:用户体验和执行效率。本章中采用Ajax一般分页和滑动分页两种方式来改善用户体验,采用一个优化的存储过程以提高数据分页的执行效率。
第10章实现文件上传显示进度条功能。本章中利用ASP.NET的HttpModule和Call Back,封装了一个进度条控件。
第11章开发相册模块。本章利用Prototype和Scriptaculous框架实现简易的相册管理功能。Scriptaculous框架的使用大大增强了Web界面的视觉效果。
第12章开发Ajax小偷模块。Ajax技术和小偷程序的结合使得小偷程序进一步发展。本章利用Ajax小偷实现了天气情况查询、在线翻译、电视节目时间表查询等功能。
第13章实现聚合搜索功能。这一章可以看作是小偷模块的继续。本章中把百度、Google、雅虎、爱问、搜狗、中搜6大搜索引擎的功能集成到一个页面中,并对广告内容进行排除。
第14章开发无限级级联菜单。本章中分别实现传统级联菜单和Ajax级联菜单,并对两者进行对比,使读者深刻理解Ajax级联菜单的优势。
第15章开发内文广告系统。内文广告,即将文章内容中出现的关键词自动生成广告链接。当鼠标光标滑过关键词链接时,出现广告窗体,达到广告宣传的目的。这是一种新兴的广告形式。
第16章继续进行聊天室开发。本章与第4章实现的功能基本相同。其不同之处在于,本章没有采用任何Ajax框架。通过两种不同开发方式的对比,读者可以更深刻的认识Ajax程序的基本原理。
第17章开发可个性化定制的RSS系统。RSS用来对网络上的内容进行聚合,以方便用户访问。本章中的RSS模块可以利用鼠标光标拖动,并在当前位置保存下来,本系统是聚合与个性化的完美结合。
第18章开发Web QQ。本系统是本书中综合性最强的一个实例。本例的目标是模仿OICQ开发一个Web版的QQ。其主要功能包括:两人聊天、多人聊天,新消息到达自动提示,添加、删除好友,添加、删除黑名单,个人信息管理、头像设置、个人上线、隐身设置等。
本书中所讲述的这些实例都是从实际应用中抽象出来的,具有很强的实用性。读者深刻领会后,只要稍加修改这些示例便可应用于自己的开发项目中。同时,通过对这些模块开发的学习,将使读者掌握.NET领域Ajax程序的开发技术,为以后应用开发打下坚实基础。
适合的读者
· Ajax程序员
· ASP.NET程序员
· 网站UI开发人员
· JavaScript开发人员
· 网页特效制作人员
· 网站管理维护人员
· 有一定ASP.NET网站开发基础,想学习Ajax的读者
本书作者
本书由王宏宇组织编写,同时参与编写、资料整理和代码编写的有张金霞、刘丹、刘冠军、罗思红、孙飞、王朋章、王石磊、王新平、文奇、吴琪、席国庆、谢超文、臧勇、张国强、张家春、郭玉敏、贺道权、胡斯登、江成海、姜海峰、李峥、利建昌、栗菊民、刘波等,在此一并表示感谢。
编 者
2007年6月







