ajax的概念和优势
AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。
通过在后端与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。传统的网页(不使用 AJAX)如果需要更新内容,必须重载整个网页面。
可以把一部分以前由服务器负担的工作转移到客户端,利用客户端的闲置的资源进行处理,减轻服务器和带宽的负担,节约空间和成本.
无刷新更新页面,不需要等待,只需发送请求并得到服务器的响应,在不需要重新载入页面的情况下,就可以通过DOM及时将更新的内容显示在网页上。
可以调用xml、json等外部数据。
没有平台限制。Ajax把服务器的角色由原本传输内容转变为传输数据,而数据格式则可以使纯文本格式和xml、json格式,这几种格式没有平台限制。
编写步骤
创建请求对象
var request = new XMLHttpRequest(); |
var request = new ActiveXObject("Microsoft.XMLHTTP") |
ajax的两个方法和设置请求参数
request.open("get", "http://10.0.152.17/AJAX/ajaxtest", true); request.send( ) 当该boolean值为true时,服务器请求是异步进行的,也就是脚本执行send()方法后不等待 服务器的执行结果,而是继续执行脚本代码; 当该boolean值为false时,服务器请求是同步进行的,也就是脚本执行send()方法后等待 服务器的执行结果的返回,若在等待过程中超时,则不再等待,继续执行后面的脚本代码! |
readyState:就绪状态--0(初始化) 1(请求建立) 2(发送完成) 3(解析) 4(完成) 0:请求初始化(还没有调用 open())。 1:请求已经建立,但是还没有发送(还没有调用 send())。 2:请求已发送,正在处理中(通常现在可以从响应中获取内容头)。 3:请求在处理中;通常响应中已有部分数据可用,但是服务器还没有完成响应的生成。 4:响应已完成;您可以获取并使用服务器的响应了。 |
设置回调函数
request.onreadystatechange = function(){ if(request.readyState == 4) { alert(request.responseText); } } |
onreadystatechange当状态值(readyState)发生改变的事件 ajax.readyState==4 代表ajax的工作状态,共5个值 ajax.status==200 服务器状态(http状态码); 操作内容: responseText: ajax请求返回的内容就被存放到这个属性下面,返回获取的内容,string responseXML返回xml文件 |
GET/POST请求数据--默认GET方法
GET:把数据名称和数据值用=连接,如果多个的话,那么会把多个数据用&连接,然后把数据放到url?后面传给指定的页面。 post:直接传送数值,但需要申明发送的数据类型 ajax.setRequestHeader(‘content-type’,‘application/x-www-form-urlencoded’) 数据放在send()里面作为参数传递。 enctype:提交数据的格式。enctype="application/x-www-form-urlencoded |
回调函数
回调函数是一个作为变量传递给另外一个函数的函数,它在主体函数执行完之后执行。
编写服务器接口
JS解析JSON
序列化的方法
a) JSON.stringify() :把一个 JavaScript 对象序列化为一个 JSON 字符串
b) JSON.parse() 把对应的字符串转换成json格式,注意引号。