Ajax的核心
Ajax的简介是当前web技术火的一门新兴技术,一些大型网站都号称提供对Ajax的支持。其实质,Ajax并不是一种技术,他是由几种蓬勃发展的技术以新的强大方式组合起来的,它使浏览器可以为用户提供更为自然的浏览体验。
一、什么是Ajax:
1.在学习任何一种新知识时,首先最需要决绝的问题就是:他是什么,他是怎么样的。2005年2月,Adaptive Path公司的Jesse James Garrett在网上发表了名为《Ajax:一种Web应用程序开发的新方法》的文章,Garrett阐述了他为什么认为Web应用程序正在填平与传统桌面应用程序之间的鸿沟。
• Google Suggest和Google Maps是这种新型应用的代表
• Ajax:Asynchronous(异步)Javascript + XML的简写
2.Ajax原则:
• 尽量减少通信量。
• 确保用户知道下一步如何操作
• 遵循常规。
• 无干扰:避免使用动画,闪烁的页面这些小伎俩来让用户分心
• 避免下载整个页面
• 用户第一
二、Ajax的组成部分:
1.Ajax的全称为(Asynchronous JavaScript + Xml(异步Javascript和Xml)。仅从这个组合可以看出Ajax其实并不时一种技术,他实际上是几种技术的组合体。每种技术都有其独特之处,合在一起就成了一个功能强大的新技术。
2.Ajax的组成:基于web标准(standards-dasedpresentation)XHTML(可扩展标示语言)+CSS(层叠样式表)。
(1).使用DOM(Document object Model文档对象模型)进行动态显示机交互;
(2).使用XmlHttpRequest(Xml Http请求)进行异步数据查询、检索;
(3).使用Xml(Xml Soutce-tree XML源树)和XSLT(XML result—tree XML结果树)进行数据交换及相关操作。
(4).使用Javascript(Javascript脚本语言)将所有东西绑定在一起。
(5).要使Ajax成功运行,需要客户端与服务器端的两种技术互相交互配合。客户端采用Javascript向服务器发送异步的请求,服务器根据请求返回指定的内容。
3.客户端的XmlHttpRequest对象Javascript异步的方式访问服务器成为可能。这样当函数在后台执行向服务器的请求时,用户可以在前台进行其他的工作。
4.若只有客户端而没有与之对应的服务器端相应用户的请求也不行。所以也需要服务器端对应客户端的Javascript请求做出回应。如果服务器端返回XML,则客户端可以很轻松的读出其中的内容。当然服务器管理者也可以根据需求返回特定的数据类型,甚至可以是一个文本。
5.
三、Ajax的特点:
1.Ajax的核心:是Javascript对象XmlHttpRequest。他是一种异步请求的技术。简而言之XmlHttpRequest使用户可以使用JavaScript向服务器提出请求并处理相应,而不阻塞用户。
四、 使用Ajax可以完成的功能:
1.提升站点的性能: 这是通过减少从服务器下载的数据量而实现的。如在某购物车页面,当更新购物车中的一项物品的数量时,会重新载入整个页面,这就必须下载整个页面的数据。如果使用Ajax计算新的总量,服务器只会返回新的总量值,因此所需的宽带仅为原来的百分之一。
2.消除每次用户输入时的页面刷新:如在Ajax中,如果用户在分页列表上单击“下一页”的连接,则服务器数据只刷新列表而不时整个页面。使用Ajax技术中的XmlHttpRequest模式对服务器发出一个异步的请求,服务器可以返回只包含需要返回特定信息长度的字符串,而不是发送整个页面大小的数据来刷新整个页面。即使用户使用的是高速的Internet,这样的差别有时也会非常大。就像有些网站标称的那样,相应时间最高可以减少90%。
3.实现对表格的直接编辑:直接编辑表格数据,而不是要用户导航到新的页面来编辑数据,对于Ajax当用户单击“编辑”连接时,可以将静态表格刷新为内容可编辑的表格。单用户单击“提交”按钮之后,就可以发出一个Ajax对象XmlHttpRequest异步的请求来更新服务器,并刷新表格使其包含静态、只读的数据
五、Ajax的工作原理:
1.相当于在用户之间和服务器之间加了一个中间层(Ajax引擎),使用户操作与服务器响应异步变化。这样把以前的一些服务器负担的工作转到客户端,利用客户端闲置处理能力来处理,从而减轻服务器和宽带的负担,达到节约ISP(Internet service provide因特尔服务器提供商)的空间及宽带租用成本的目的。
通过图Ajax的运行机理可见,使用Ajax可以很大程度上减轻服务器的负担,减少服务器对用户的响应时间
2.Ajax通信技术
• 隐藏帧技术
隐藏帧的GET和POST请求
(1)隐藏的iframe
XMLHttp的Get和POST请求