ajax必会知识

                       AJAX
1.什么是AJAX(Asynchronous JavaScript and XML)?
允许浏览器和服务器通信而无需刷新页面的技术都被叫做AJAX.(数据在客户端和服务端通信,而不再需要刷新整个页面)

2.XMLHttpRequest:该对象是对JavaScript的一个扩展,可使网页与服务器进行通信,是创建AJAX应用的最佳选择。实际上通常把AJAX当成XMLHttpRequest对象的代名词。

3.AJAX工具包:
(1)服务器语言:需要具备向浏览器发送特定信息的能力,AJAX与服务器端语言无关。
(2)XML:AJAX需要某种格式化的格式来在服务器端和客户端之间传递信息,XML是其中的一种选择。
(3)XHTML和CSS:标准化呈现
(4)DOM实现动态显示和交互
(5)使用XMLHttp组件的HttpRequest进行异步数据的读取
(6)使用JavaScript绑定和处理所有数据


4.AJAX缺陷:兼容性、支持性差,对流媒体的支持没有flash和Java Applet好,会导致回退功能失效。

5.利用XMLHttpRequest解析text文本数据:
①创建XMLHttpRequest对象。
②如果是超级链接应该在响应函数中return false,以取消默认行为
③准备发送请求的数据:URL(通常在URL的后面加上一个时间戳以起到禁用浏览器缓存的作用)、method
④调用XMLHttpRequest的open()方法
⑤调用XMLHttpRequest的send()方法(get请求没有请求体既:send(null))
⑥为XMLHttpRequest对象添加onreadystatechange响应函数
⑦判断响应是否完成:XMLHttpRequest对象的readystate属性值为4的时候响应完成
⑧判断响应是否可用:XMLHttpRequest对象的status属性值为200的时候或者为304的时候
⑨得到响应结果:Request.responseText

6.服务器端返回的状态码:200表示OK,304表示未修改,404表示不存在,500表示内部错误。

7.使用XMLHttpRequest解析HTML格式数据:
①步骤同解析text一样,但是可以直接利用:标签.innerHTML=Request.responseText的方式直接解析数据。
②提示:MyEclipse自带的浏览器不能实现此效果,应该其他浏览器访问。

8.使用XMLHttpRequest解析XML格式的数据:
(1)基本步骤同解析HTML
(2)不同点:
①结果为XML格式,所以需要使用responseXML来获取结果.eg:
var result=responseXML;
var name=result.getElementByTagName("name")[0].firstChild.nodeValue;(从XML文件中以DOM的方式获取数据)
②同时用DOM的方式构建目标节点.eg:
var aNode=document.createElement("a");
aNode.appendChild(document.createTextNode(name));
aNode.href="mailto:"+email;
③结果不能行直接使用,必须先创建对应的节点,再把节点加入对应的HTML标签中。
标签.innerHTML="";(用于清空内容)
(2)优缺点:①XML是一种通用的数据格式
②不必数据强加到已定义好的格式中,而是要为数据自定义合适的标记。
③利用DOM可以完全掌控文档
④缺点:如果文档来自于服务器就必须得保证文档含有正确的首部信息,如果文档的类型不正确,那么responseXML的值将是空的,当浏览器收到较长的XML文档时,DOM解析将会十分复杂。

9.利用XMLHttpRequest解析JSON(JavaScript Object Nation)格式的数据
(1)json是一种简单的数据格式,是JavaScript的原生格式,所以不需要任何特殊的API或者工具包
(2)json的规则很简单:对象是一个无序的"名称/值"集合,一个对象以"{"开始,以"}"结束,每个"名称"后跟一个":","名称/值"对之间用","分隔。eg:
var jsonObject={
"name":"赵刘保",
"age":"22",
"address":{"city":"武汉","学校":"中南名族大学"},
"major":function(){…}
};
(3)如何把字符串转化为json对象?
使用eval(参数)方法就能将任何类型的格式转化为对象。
(4)优缺点:json与XML相似,但比XML更灵活,json不需要从服务器端发送含有特定内容类型的首部信息。
缺点:语法过于严格,代码不易读,eval()函数存在风险。

10.使用JQuery实现Ajax
(1)JQuery对Ajax操作进行了封装,在JQuery中最顶层的方法是$.ajax(),第二层是load(),$.get()和$.post(),第三层是$.getscript()和$.getJSON()
(2)load()方法是JQuery中最简单和最常用的方法,能载入远程的HTML代码,并插入到DOM中,它的结构是:load(URL[,Data][,callback]),如果只想返回HTML文档的一部分可以使用选择器。
(3)任何一个HTML节点都可以是load()方法将另一个HTML节点加进来作为它的子节点。

11.实现三级联动的效果

12.Ajax使用BlockUI
Ajax请求发出时执行$.blockUI,Ajax响应送达时执行$.unblockUI
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章