ajax原理:
ajax
AJAX全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。
主要包含了以下几种技术
Ajax(Asynchronous JavaScript +
XML)的定义
基于web标准(standards-based presentation)XHTML+CSS的表示;
使用
DOM(Document Object Model)进行动态显示及交互;
使用 XML 和 XSLT 进行数据交换及相关操作;
使用 XMLHttpRequest 进行异步数据查询、检索;
使用 JavaScript 将所有的东西绑定在一起。
英文参见Ajax的提出者Jesse James
Garrett的原文。
类似于DHTML或LAMP,AJAX不是指一种单一的技术,而是有机地利用了一系列相关的技术。
事实上,一些基于AJAX的“派生/合成”式(posite)的技术正在出现,如“AFLAX”。
AJAX的应用使用支持以上技术的web浏览器作为运行平台。
这些浏览器目前包括:Mozilla、Firefox、
Explorer、Opera、Konqueror及Safari。
但是Opera不支持XSL格式对象,也不支持XSLT。
AJAX应用可以仅向服务器发送并取回必需的数据,它使用SOAP或其它一些基于XML的web
service接口,并在客户端采用JavaScript处理来自服务器的响应。
因为在服务器和浏览器之间交换的数据大量减少,结果我们就能看到响应更快
的应用。
同时很多的处理工作可以在发出请求的客户端机器上完成,所以Web服务器的处理时间也减少了。
Ajax应用程序的优势在于:
1.
通过异步模式,提升了用户体验
2. 优化了浏览器和服务器之间的传输,减少不必要的数据往返,减少了带宽占用
3.
Ajax引擎在客户端运行,承担了一部分本来由服务器承担的工作,从而减少了大用户量下的服务器负载。
Ajax的工作原理
Ajax的核心是JavaScript对象XmlHttpRequest。
该对象在
Explorer
5中首次引入,它是一种支持异步请求的技术。
简而言之,XmlHttpRequest使您可以使用JavaScript向服务器提出请求并处理响应,而不
阻塞用户。
在创建Web站点时,在客户端执行屏幕更新为用户提供了很大的灵活性。
下面是使用Ajax可以完成的功能:
动态更新购物车的物品总数,无需用户单击Update并等待服务器重新发送整个页面。
提升站点的性能,这是通过减少从服务器下载的数据量而实现的。
例如,在某购物车页面,当更新篮子中的一项物品的数量时,会重新载入整个页面,这必须下载整
个页面的数据。
如果使用Ajax计算新的总量,服务器只会返回新的总量值,因此所需的带宽仅为原来的百分之一。
消除了每次用户输入时的页面刷新。
例如,在Ajax中,如果用户在分页列表上单击Next,则服务器数据只刷新列表而不是整个页面。
直接编辑表格数据,而不是要求用户导航到新的页面来编辑数据。
对于Ajax,当用户单击Edit时,可以将静态表格刷新为内容可编辑的表格。
用户单击Done之后,就可以发出一个Ajax请求来更新服务器,并刷新表格,使其包含静态、只读的数据。
一切皆有可能!但愿它能够激发您开始开发自己的基于Ajax的站点。
然而,在开始之前,让我们介绍一个现有的Web站点,它遵循传统的提交/等待/重新显示的范例,我们还将讨论Ajax如何提升用户体验。
Ajax的工作原理相当于在用户和服务器之间加了—个中间层,使用户操作与服务器响应异步化。
这样把以前的一些服务器负担的工作转嫁到客户端,利于客户端闲置的处理能力来处理,减轻服务器和带宽的负担,从而达到节约ISP的空间及带宽租用成本的目的。
Ajax的原理是什么?
Ajax是基于web标准(standards-based presentation)XHTML+CSS的表示;
使用 DOM(Document Object Model)进行动态显示及交互;使用 XML 和 XSLT 进行数据交换及相关操作;使用 XMLHttpRequest 进行异步数据查询、检索;使用 JavaScript 将所有的东西绑定在一起。
更多资料参看: /view/1641.htm?fr=ala0_1
Ajax的工作原理是什么?
Ajax的工作原理
AJAX全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。
主要包含了以下几种技术
Ajax(Asynchronous JavaScript + XML)的定义
基于web标准(standards-based presentation)XHTML+CSS的表示;
使用 DOM(Document Object Model)进行动态显示及交互;
使用 XML 和 XSLT 进行数据交换及相关操作;
使用 XMLHttpRequest 进行异步数据查询、检索;
使用 JavaScript 将所有的东西绑定在一起。
AJAX的具体工作原理是什么?
Ajax和服务器端技术毫不相关;DOM模型是Ajax最本质的技术;在使用Ajax控件前理解它们的实现;学好JavaScript ;Ajax点缀:CSS 。
观点一:Ajax和服务器端技术毫不相关 严格的说,与传统web开发相比,Ajax是完完全全的客户端技术。
由于很多控件封装了客户端和服务器端的通信过程,因此很多问题也因通信而起。
事实上,不论何种Ajax技术,服务器端都是返回的一个纯文本流,再由客户端来处理这个文本。
这段文本可以是xml格式,也可以是一个Html片段,也可以是一段JavaScript脚本,或者仅是一个字符串。
服务器端仅仅是作为一个数据接口,客户端使用XMLHttpRequest对象来请求这个页面,服务器端在页面内写入结果文本,这个过程和普通的web开发没有任何区别。
所不同的只是,客户端在异步获取结果后,不是直接显示在页面,而是由客户端的Javascript脚本处理后再显示在页面。
至于各种控件所谓的能返回DataSet对象,Date对象,或者其他的数据类型,都是封装了这个处理过程的结果。
观点二:DOM模型是Ajax最本质的技术 之所以没有把XMLHttpRequest列为最本质的技术,因为本人觉得它实在是太简单了,它只是可以让浏览器在后台请求一个页面,并将其内容交给JavaScript处理。
真正的核心应该是:DOM模型,即文档对象模型。
在DOM模型里,Html标记都被认为是一个对象,例如:div对象,table对象等等。
DOM模型就规定了这些对象所具有的属性、方法和事件。
通过这些性质,可以对一个已经显示于浏览器的页面进行内容的修改,例如增加节点、修改节点位置,删除节点等等。
而不仅仅是一个innerHTML属性这么简单,虽然这是一个很有用的属性。
观点三:在使用Ajax控件前理解它们的实现 使用Ajax控件的确可以提高效率,但如果你空中楼阁般使用控件,那就得不偿失了。
从一个控件换到另外一个控件又会有一个漫长的学习曲线。
所以应该从底层了解其,况且Ajax实在不是什么高深的技术。
其实任何东西的最底层其实都是简单的,但如果封装了这些底层的东西,事情会变得复杂和难以理解。
以为例,它的定制特性可以使得只要在方法前加上[ajax method]类似这样的标志就可以称为一个异步方法,相信这使得的Ajax开发显得更加“高效”或者是“神秘”,而更多的事情则被封装了。
同样记住一条,任何对服务器端的请求仅仅是返回纯文本,我们不一定要依赖于封装好的处理过程,而完全可以自己来实现。
观点四:学好JavaScript 在大多数人看来,JavaScript总不是那么一种正规的语言,随便copy一段就碰巧能运行,学过c之类的人,一看也能看懂,而且在浏览器中常常有脚本错误提示,所以潜意识觉得总不能付之以大任。
事实上,要学好Ajax,这就完全是一种错误的看法。
javascript作为一种脚本语言,其语法的确不是很严格,但并不妨碍其完成诸多复杂的任务,没有JavaScript,就没有Ajax。
所以本人强烈建议,学Ajax前,一定要好好研究一番JavaScript,一般来讲,如果能顺利看懂prototype框架的代码(如:prototype-1.3.1.js),你的JavaScript水平就基本过关了。
同时对DOM模型也可以算有一个基本的了解。
观点五:Ajax点缀:CSS 用JavaScript控制CSS其实很简单,基本上每个DOM对象都有一个style对象,只要把css属性里的"-"去掉,并让随后的字母变为大写就可以作为属性使用了,例如:element.style.backgroundColor="#f00";在css是:选择符 {background-color:#f00}
采纳哦
ajax的基本原理是什么
Ajax不是指一种新的技术,它实际上是包括了JavaScript、CSS、DOM和XMLHttpRequest等技术的结合,而且Ajax是基于标准化的并被广泛支持和技术,并且不需要插件或下载小程序,所以在学习和掌握方面会比较容易。
n
n减轻服务器的负担。
因为Ajax的根本理念是“按需取数据”,所以最大可能在减少了冗余请求和响影对服务器造成的负担,节约空间和带宽租用成本。
n无刷新更新页面,减少用户实际和心理等待时间。
例如,项目里会用到的对简单的级联菜单的处理就需要此项技术。
Ajax适用于交互较多,频繁读数据,数据分类良好的WEB应用。
pn级联菜单这种方式虽然解决了操作响应速度、不重载页面以及避免向服务器频繁发送请求的问题,但是如果用户不对菜单进行操作或只对菜单中的一部分进行操作的话,那读取的数据中的一部分就会成为冗余数据而浪费用户的资源,特别是在菜单结构复杂、数据量大的情况下(比如菜单有很多级、每一级菜又有上百个项目),这种弊端就更为突出。
n
nAjax的无刷新重载,由于页面的变化没有刷新重载那么明显,所以容易给用户带来困扰――用户不太清楚现在的数据是新的还是已经更新过的;现有的解决有:在相关位置提示、数据更新的区域设计得比较明显、数据更新后给用户提示等。
n对流媒体的支持没有FLASH、Java Applet好.
用JavaScript作的Ajax引擎,JavaScript的兼容性是一个问题,并且调试Bug不是很容易的事,方法比较单一,而且有时从抛出的异常很难进行错误的定位。
AJAX的缺点
Ajax可以使WEB中的界面与应用分离(也可以说是数据与呈现分离)。
而在以前两者是没有清晰的界限的,数据与呈现分离的分离,这样做有利于分工合作、减少非技术人员对页面的修改造成的WEB应用程序错误、提高效率、也更加适用于现在的发布系统。