Ajax相关知识点
Ajax,即Asynchronous JavaScript and XML(异步的JavaScript和XML),它不是一种新的语言,而是一种快速创建动态网页的技术。Ajax通过在后台与服务器进行数据交换,在不重新加载整个页面的情况下更新网页的部分内容。同时,它的使用也会有一些影响,比如影响后退按钮和收藏夹。使用场景包括:电商网站中更新购物车、微博点赞功能等。 创建XMLHttpRequest对象 var xhr;
if(window.XMLHttpRequest) {
xhr = new XMLHttpRequest(); // IE7+、Firefox、Chrome...
} else {
xhr = new ActiveXObject("Microsoft.XMLHTTP"); // IE6以下
}
XMLHttpRequest向服务器发送请求 get请求:一般用于信息获取,使用url传递参数,对所发送信息的数量也有限制,一般2000个字符; 使用post请求方式时,使用表单post数据时要设置Http头信息,setRequestHeader(header,value),最常用设置的头信息”application/x-www-form-urlencoded”。写在open()和send()方法之间,否则会抛出异常。 xhr.open("POST","ajax_test.asp",true);
xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xhr.send("fname=Bill&lname=Gates");
获得服务器的相应 处理响应 xhr.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("myDiv").innerHTML=xhr.responseText;
}
}
Ajax中同步与异步的区别 简单来说,同步需要等待返回结果才能继续,异步不必等待,一般需要监听异步的结果。 同步是在一条直线上的队列,异步不在一个队列上 各走各的 异步:在异步模式下,当我们使用AJAX发送完请求后,可能还有代码需要执行。这个时候可能由于种种原因导致服务器还没有响应我们的请求,但是因为我们采用了异步执行方式,所有包含AJAX请求代码的函数中的剩余代码将继续执行。如果我们是将请求结果交由另外一个JS函数去处理的,那么,这个时候就好比两条线程同时执行一样。 同步:当JS代码加载到当前AJAX的时候会把页面里所有的代码停止加载,页面出现假死状态,当这个AJAX执 行完毕后才会继续运行其他代码页面假死状态解除。在同步模式下,当我们使用AJAX发送完请求后,后续还有代码需要执行,我们同样将服务器响应交由另一个JS函数去处理,但是这时的代码执行情况是:在服务器没有响应或者处理响应结果的JS函数还没有处理完成return时,包含请求代码的函数的剩余代码是不能够执行的。就好比单线程一样,请求发出后就进入阻塞状态,直到解除阻塞余下的代码才会继续执行。如果采用同步的方式,就失去了Ajax的意义。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |