All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
VS2005,中调试JavaScript的方法_[Asp.Net教程]
轻松掌握Ajax.net系列教程六:使用PopupControlExtender_[Asp.Net教程]
ASP.NET2.0学习-
ASP.NET常用代码Eval,DataBinder.Eval实例_[Asp.Net教程]
visual c++中CFontDialog对话框
PHP实例:PHP制作的网站意见在线反馈表_[PHP教程]
动态网页变静态:ASP.NET生成静态HTML页_[Asp.Net教程]
在Linux下开发.Net程序的环境搭建_[Asp.Net教程]
PHP爱好者来看:初学者头痛问题汇总_php资料_编程技术
Linux下PHP连接MS,SQLServer的办法_php资料_编程技术
Reading number is top 10 pictures
壮丽的云彩1
性感丰满身材火爆de美女2
餐桌上的鱼
Beautiful vacuum girl2
The money of more than 100 countries and regions15
Female model behind the bitterness, often being overcharged4
Hunan road lawenforcement vehicle pursue overload car caused the car turn and man is died
迷人的靓女
BingBingFan apple dew point photo gallery2
Ashlynn Brooke photograph of a group4
Download software ranking
Unix video tutorial12
C#高级编程(第4版)
Tram sex maniac 2 (H) rar bag2
The hero
Tram sex maniac 2 (H) rar bag1
Eclipse 4.2.2 For Win32
jBuilder2006
Unix video tutorial14
XML+Web+Service开发教程
Tram sex maniac 2 (H) rar bag18
归海一刀 published in(发表于) 2014/3/16 2:54:37 Edit(编辑)
我眼中的Ajax_[AJAX教程]

我眼中的Ajax_[AJAX教程]

我眼中的Ajax_[AJAX教程]

AJAX在去年确实火爆了,作为Web2.0时代的核心技术,关注度盛况空前,至今仍余音未绝,我一直从事于WinForm、Windows Mobile应用开发,虽然对Web开发略知一二,但从未向学习WinForm开发一样系统的学过Web,最近闲暇之余从头学了学ASP.NET,到现在才真正理解清楚了诸如ViewState之类的Web工作原理,我可以肯定的说,时下的Web开发人员中还有什么都没理解清楚的“高手”,当然ASP.NET并不是今天讨论的话题,我们直接看看Ajax吧,在理解清楚它之后你会发现,它比理解WinForm编程中的线程单元要简单得多,就其技术本身来说并没有什么神秘与复杂性可言,而且其工作机制还不及三次握手的理解难度,我们并不讨论实现的方法,而只对底层工作原理进行剖析,因此读这篇文章并不需要造火箭的技术。

Ajax(Asynchronous JavaScript and XML)中文意思为异步JavaScript 和XML,或者基于XML的异步JavaScript.它提供了一种局部刷新Web页面的机制,比起传统的整页Load在性能上有了质的飞跃,看看GoogleMap吧,再看看Google输入框的AutoComplete功能,相信你已经对Ajax无限神往了。每一项技术都有其发展的根源,我们追溯一下Ajax的历史,其实这个技术最早在IE5.0中被引入,算算也是几年前的东西了,可惜微软当时并没有挖掘出它的价值,直到Flickr, Backpack和Google在这方面作出了惊人的研究成果。就技术根本来说,Ajax只完成了一个功能,即用客户端代码(JavaScript )发送Http请求,要完成这一特殊的功能并不是我们这些普通开发人员能简单实现的,因为它依赖于浏览器本身,在IE5中,微软引入了一个XmlHttp的ActiveX对象,后来Mozilla, Safari 和其他浏览器纷纷仿效, 提供了XMLHttpRequest类,它支持微软这个ActiveX对象所提供的方法和属性.这个类使得我们用JavaScript发送Http请求成为可能。并且它提供了我们插入响应代码的途径。下面是前面所描述的这个对象执行机制的伪代码:

request = new XMLHttpRequest();

request.open('GET', 'http://localHost/xxxx.aspx, true);


request.send(null);

响应这个请求:

request.onreadystatechange = function(){

var text = request.ResponseText; //取得响应的字符串


// 作出响应.....执行一些客户端JavaScript


};


当然实际代码比起这些代码要复杂得多,但前面说过了,我们并不讨论实现方式,而是探寻其执行原理,可见为Ajax剥下神秘面纱后赤裸裸的展示出来其简单的原理,和C#里的事件响应一样,只不过这个事件是客户端请求而服务端触发罢了,真正的复杂性早已被微软封装到ActiveX对象中了,但是原理的简单并不是说实现的简单,实现起来确实有些难度,但是现在那么多的AJAX框架已经为我们屏蔽了很底层的东东,实现并不在本文所谈论的话题,这里就不详述了。

任何新技术的引入伴随的都是痛苦的学习,我们必须掌握其实现原理,才能准确,适宜的用好这些新技术,盲目烂用只能弄巧成拙。那么作为开发人员的我们如何应对已经到来的AJAX呢?以下是我个人理解了AJAX后的一些结论(注:本人自知技术造诣浅陋,不对之处请大家原谅):

理解Ajax解决的问题

Ajax的出现就是为了改善Web程序用户体验,用户点击页面后的页面刷新延迟问题就是引入Ajax的直接理由,如果我们的程序运用AJAX并没有改善用户体验的话那只是为了Ajax而Ajax,而不是为了用户体验而Ajax。

Ajax的弊端

1、兼容性。Ajax的立命之本是前面提到的XMLHttpRequest,然而这个对象在各个浏览器中不尽相同,这就增加了我们开发过程中完成一个跨浏览器的通用代码的难度,而JavaScript这种语言在各种浏览器中对技术的支持和标准也不同,从而加剧了这种困难性。好在市面上纷繁的Ajax框架已经为我们解决了兼容性问题,让我们构建跨浏览器的程序变得简单起来。
2、服务器压力。本人认为Ajax把客户端请求服务器响应这一过程变为异步执行,一方面提高了用户体验,同时使得用户请求响应的次数显著增加,服务器面临的压力也将增强,试想一下,以传统整页加载的方式当用户请求一个页面时候必然会等待页面装载,而Ajax使得请求发出后页面并不需要等待,这样用户可以点击其他页面元素再次发送请求,试想一下Google的AutoComplete功能如果是链接数据库请求的话,每次输入都会发生这一行为,那数据库压力是否成倍增长?
3、语言问题。由于Ajax以JavaScript为核心,而这是一种繁杂而又易出错的语言,它会使得我们将应用逻辑任意地散布在服务端和客户端中,这使得问题很难被发现而且代码很难重用。JavaScript甚至被服务端开发人员认为是一种企业级应用不需要使用的东西应该尽力避免。幸好出现了Microsoft Script Debugger等强大的JS调试器,同时VS2008的JavaScript智能功能也在为这些问题而做着努力。然而JavaScript的缺陷如双重变量赋值(通常是由于缺少数据类型)使得调试程序依然面临挑战。

相关技术

由于XMLHttpRequest返回的响应是以字符串形式出现,因此XML成为理想的选择,Ajax中的x预示着XML将终身伴随着Ajax,因为大多数开发人员已经掌握了这项流行的技术。对于Xml来说理解Dom是必须的,Xpath为Xml操作提供了捷径,而XSLT为输出Html提供了天然的温床,因此所谈到的这些技术作为Ajax开发者必须掌握。加上新引入的XMLHttpRequest对象,和更复杂的JavaScript代码,相信技术的学习依然会痛苦一段时间。


说到这里已经算为Ajax开了个头了,希望对初学Ajax的朋友能提供学习上的指引,本人也是菜鸟,望高手勿见笑。

Ajax教程:http://dwww.cn/HtmlData/Program/Ajax/

来源:http://www.cnblogs.com/Endink







添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.