一.ASP.NET Ajax 概述:

 网页技术的发展是从静态网页开始的,最初的网站就是由HTML标签设计出来的放在服务器上基于Http协议技术,本地浏览器或是远程浏览器都可以解析查看。整个网页只是给提供一些已定的信息,没有任何交互性和变化。记得我们寝室刚开始兴起做网站的时候就出现了一个网站的历史性回顾:我做的网站是用ASP.NET 1.1 版本的,基于服务器的交互,而我的一位室友做用的是DreamWare写的,具有一定的动态效果,另外一位室友闲着无聊就做了一些静态网页。

 由于静态网页不能满足浏览器用户的更多要求,网页技术随后发展到基于服务器交互的时代,最早出现的是CGI技术,客户端浏览器访问CGI服务器,然后服务器经过一些处理后发送到浏览器。由于CGI技术的复杂,后来出现了PHP技术,微软公司的ASPactive server page)和JSP等服务端技术。从这个时候起,网页技术开始进入了服务端时代,客户端提交的请求都由服务器进行处理并返回,这样网页有更多的交互性,可以提供数据库处理,表单处理等等。网页内容变得更加丰富,更加具有交互性。

        但是随着微软.NET平台的发布,ASP.NET技术开始在网站技术上迅速发展起来,由于ASP技术是将网页HTML标签和vb脚本放在同一个文件中的,所以代码结构比较混乱,网站的显示部分和逻辑部分代码交替在一起,没有很好的重用性,让代码的调试非常困难,美工和代码编程人员的合作也比较困难,asp是采用COM技术会出现有名的“Dll Hell”问题。而ASP.NET技术采用了codebehind概念,将HTML代码放在.aspx文件中,将C#VB代码放在.apsx.cs.aspx.vb文件中,将网页的显示部分和逻辑代码部分分离,从而使代码层次更加清晰,代码重用性也成为可能。网页的美工和编程人员也可以独立工作,代码的调试也因VS.NET2003/5提供的强大调试更能而变得更加具有高效率,由于.NET平台采用了更好的版本控制机制,使程序大大降低了“dll hell”的危害。

        那么既然ASP.NET已经具有这么大的改善,那网站技术还有什么问题呢?人类的探索和发展是永不停止的,人们总是不满足于现在的状况,从而推动了网站的技术的进一步思考:

1.       整体刷新:浏览器向服务器提交请求时,服务器会对浏览器的请求进行处理,这个过程是对网页的彻底刷新,网页从头到尾所有的HTML标签都被服务器重新传回,这个过程会有很多的数据传输过程,即使网页只是一个小小的变换也引起整个网页的数据传输和处理过程。

2.       数据传输任务:由于服务器控件采用viewState来保存他们的内容,网页上服务器控件越多,ViewState保存的信息越多,那么postback的时候网络要传输的数据任务就越重。

3.       同步请求:当用户点击web上的一个按钮时,web页将回送请求到服务器处理,服务器处理完毕后返回客户端,客户端再刷新页面,这个过程是个同步的过程,就是说用户必须等待服务器传回数据以后会刷新界面进行下一步操作过程,如果服务器相应很慢,那浏览器只好长时间的等待服务器的相应。

4.       浏览信息丢失:当一个用户从顶部查看网页,然后拖动滚动条到底部的时候,如果点击按钮提交请求,刷新后的页面将是显示顶部的,用户刚才浏览的位置信息将无法保存。

那么现代的网页技术是如何改善上述问题的呢,现在出现的技术有:

1. Javajava applet是一个跨平台的应用程序,曾经在网络上应用极为广泛,他可以在客户端运行,不需要提交服务器就可以丰富网页的用户界面等。

2. XML-based lannuagesXML User Interface LanguageXUL)和Extensible Application Markup LanaguageXAML 是其中两种改善客户端应用程序的技术。XUL曾经只能用在Mozilla/Firefox 浏览器中。Siverlight(曾称为WPF),是微软发布的类似的技术,是XAML的解释器。

3. Flash:虽然Flash技术是一个跨平台技术,但是目前flash技术只是在图形用户界面上的应用比较多,并没有被商业应用程序广泛应用。不过最近Adobe发布了新的网页技术Apollo。这项技术必将和微软的Silverlight火拼一番。

4. Ajax:最后,终于提到了今天的主角:asynchronous javascript and xml, ajax技术不是什么新出现的技术,他是客户端和服务端技术的结合体,是一种丰富客户端技术并同服务端异步通信的一项技术。

最早应用ajax技术的其实是微软,在outlook产品里面微软最先采用了异步通信的技术,但当时并没有称做ajax,后来googleyahoo等公司的大力推广,Ajax成为越来越流行的技术,由于ajax对客户端内容的丰富无刷新技术,使网页技术更加具有交互性,他的好处有:

1.       异步通信:异步通信类似于桌面应用程序中的多线程技术,当用户点击web按钮提交请求以后,用户可以继续做其他的事情,而不用同步等待服务器的相应,用户还可以取消请求。

2.       数据传输减少:由于ajax通信是局部刷新使回送过程中传输的数据只是网页中的一部分,从而降低了网络通信量。

3.       服务器处理性能提高:由于只有一部分数据被传输到服务器,降低了服务器处理的内容,从而降低了服务器负担。

4.       更好的交互性:在ajax技术下,网页具有更好的交互性,更快的响应速度。

5.       用户信息保存:由于没有采用全刷新,用户读取网页的位置将不会变动。

Ajax涉及的技术:

1.       XMLHTTPRequestXMLHTTPRequest可以使浏览器同服务器通信而不需刷新网页,这是整个ajax的核心对象。在不同的浏览器可能会有一些变化。

2.       JavaScriptjavascript是丰富客户端效果的重要技术之一,由于相比vbscript具有更好的效率,它将负责浏览器和服务器的通信任务。

3.       DHTML/DOMDOM技术是W3C组织针对多个浏览器厂商制定的跨平台浏览器编程的一项技术。有了DOM编程人员就可以控制HTML里面的各个对象而不需了解浏览器的版本。

4.       XML / JSON:在ajax技术中浏览器和服务器通信的数据传输是用xml或是json作为数据格式的,在ASP.NET Ajax中,微软采用了JSON作为传输媒介。

ajax技术中,xmlhttprequestjavascript以及dom负责客户端的请求,他们负责对服务器进行请求并处理服务器响应的内容,整个过程采用xml或是json作为数据格式。而服务端技术可分为多种,包括ASP.NET 服务端技术,JSP服务端技术或是PHP。本文将主要应用.NET平台的服务端技术。要使用ASP.NET Ajax必须安装ajax扩展安装包,可以在微软官方网站下载,它包括一下一些内容:

1.       ASP.NET 2.0 Ajax Extensions 1.0asp.net ajax的核心安装包,提供对ajax技术的基本支持。

2.       Microsoft Ajax library:一组javascript 客户端类库,为ajax技术在客户端运行提供了基本功能。

3.       ASP.NET Ajax control Toolkit:一组客户端用户控件,这些控件是有微软发起的一个开源项目,任何人都可以为这个社区贡献自己的控件也可以免费使用这些控件。

ASP.NET Ajax技术的整个框架就是这个样子了,下一节我会开始应用Ajax技术到我们的项目中去。

posted on 2008-01-05 17:53  朱胜  阅读(410)  评论(0编辑  收藏  举报