最近在学习ExtJS,在学习到AJAX的一些基础知识时便总结出来和大家分享一下,适合于初学者看看,大神可以绕过!
一、AJAX概念
AJAX是AsynchronousJavascript And Xml的简写,它不是一门新的技术,而是几门技术的综合应用,是WEB2.0时代出现的一种异步通信技术。其中最核心的是在Javascript中调用一个叫XMLHttpRequest类,使用XMLHttpRequest这个类可以不用刷新整个网页就可以跟服务器端进行通信,同时再由这个类负责处理服务器端响应回来的信息,然后再通过Javascript中DOM编程将处理好的信息结果添加到网页上,从而实现了一个网页的局部刷新。提升了用户的体验,同时也减轻了WEB服务器的压力。
二、AJAX的特点
- 页面可以保持不变都能完成用户所有的请求。也就是说在客户端浏览器请求服务器端的一个页面回来后,这个页面可以一直保持不变,用户所有的请求操作都由javascript代码发送到服务器端,当服务器响应回来的时候,也是由javascript代码进行处理返回来的信息,然后动态的添加到这个页面上,而不用刷新整个页面,页面还是原来的那个页面。
- 增强用户的体验。当用用户在浏览网页的时候,同时与服务器进行异步交互和实现网页内容的局部更新。例如:用户登陆和注册的时候,输入框的焦点失去的时候,就可使用AJAX请求异步与后台交互进行用户名的校验。还有就是密码安全等级的判断等等都应用到AJAX技术。
三、AJAX的工作原理
- AJAX技术采用异步交互方式,从而消除了传统WEB应用的同步交互方式那种“请求---响应---请求---响应.....”的过程,而可以采用“请求---请求----请求---响应---请求---响应---响应.......”这种方式,这样可以提升用户体验,减轻WEB服务器的压力。
- 用户的浏览器本身就内嵌了一个XMLHttpRequest类,使用该类的对象可以在浏览器执行任务的时候就装载AJAX引擎,这个AJAX引擎就可以跟服务器进行异步通信,它可以独立于用户与网络服务器间的交流。所以就可以使用javascript来调用AJAX引擎来代替用户产生一个HTTP动作,这样内存中的数据编辑、页面导航、数据校验这些不需要重新载入整个页面的需求就可以交给AJAX来执行了。
如下图:
四、AJAX所包含的技术
AJAX:(AsynchronousJavaScript and XML)并不是一项新技术,是多种技术的综合,包括Javascript、XHTML和CSS、DOM、XML和XMLHttpRequest.
- 服务器端语言:服务器需要具备向浏览器发送特定信息的能力。Ajax与服务器端语言无关。
- XML (eXtensible Markup Language,可扩展标记语言)是一种描述数据的格式。AJAX程序需要某种格式化的格式来在服务器和客户端之间传递信息,XML是其中的一种选择。
- XHTML(eXtended Hypertext Markup Language,使用扩展超媒体标记语言)和CSS(Cascading Style Sheet,层叠样式表)标准化呈现。
- DOM(Document Object Model,文档对象模型)实现动态显示和交互。
- 使用XMLHTTP组件XMLHttpRequest对象进行异步数据读取。
- 使用JavaScript绑定和处理所有数据。
五、AJAX的缺陷
AJAX技术也不是很完美的,也存在下面的缺陷:
- AJAX大量使用javascript和ajax引擎,而这个取决于浏览器本身对AJAX技术的支持。
IE5.0及以上、Mozilla1.0、NetScape7及以上版本才支持,Mozilla虽然也支持AJAX,但是提供XMLHttpRequest的方式不一样。所以,使用AJAX的程序必须测试针对各个浏览器的兼容性。
-
AJAX更新页面内容的时候并没有刷新整个页面,因此,网页的后退功能是失效的;有的用户还经常搞不清楚现在的数据是旧的还是已经更新过的。这个就需要在明显位置提醒用户“数据已更新”。
六、XMLHttpRequest对象
XMLHttpRequest是XMLHTTP组件的对象,通过这个对象,AJAX可以像桌面应用程序一样只同服务器进行数据层面的交换,而不用每次都刷新界面,也不用每次将数据处理的工作都交给服务器来做;这样既减轻了服务器负担又加快了响应速度、缩短了用户等待的时间。