爱不释手的Ajax
什么是Ajax?为什么要使用它?Ajax全称 Asynchronous(异步) JavaScript and XML,终结了“单击,等待”的交互模式,它是指一种创建交互式网页应用的网页开发技术,Ajax并不是一种技术,它是一系列规范的集合,包含:
Ajax应用程序的优势在于:
基础-HTTP协议在使用Ajax之前,必须先了解客户端和服务器间通信的基础是怎样的,在这里,他们使用的规则是HTTP协议,两者之间通过一定格式的报文(请求报文和响应报文)进行交流,详细的看这篇文章。链接:http://www.jianshu.com/p/8163... 核心-XMLHttpRequest对象支撑起Ajax大桥的便是XHR这个对象了,它是一种支持异步请求的技术。简而言之,XmlHttpRequest可以让JavaScript向服务器提出请求并处理响应,而不阻塞用户。通过XMLHttpRequest对象,Web开发人员可以在页面加载以后进行页面的局部更新。
只要readyState属性的值发生变化,便可以触发readystatechange事件,下面来体验一下。 //演示readystatechange事件 var log = function(tmp){ console.log(tmp); }; var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function(){ log(xhr.readyState); }; xhr.open("get","./content.txt",true); xhr.send(null); 观察运行结果,可以很明确地看到状态的发生改变。
基础用法var xhr = new XMLHttpRequest(); //创建一个XHR对象 xhr.open("get","test.txt",true); //启动一个请求以备发送,这个时候xhr的readyState为1 xhr.send(null); //正式发送请求,readyState为2,随后请求成功,readyState为4 我们来详细说一下细节。
HTTP头部信息我们可以使用已有的API来对上面创建的请求报文进行增添或对响应报文进行处理,比如设置Cookie。 xhr.setRequestHeader("imake","myValue");//添加头部信息 xhr.getResponseHeader(headerName);//获取头部信息 xhr.getAllResponseHeaders();//获取全部头部信息 GET请求GET方法将需要查询的字符串追加到URL的末尾,也就是在XHR的open方法的URL末尾进行添加,需要进行 function addURLParam(url,name,value){ url+=(url.indexOf("?") == -1 ? "?" : "&"); url+=encodeURIComponent(name)+"="+encodeURIComponent(value); } xhr.open("get",url,true);
POST请求讨论POST之前,我们先回想一下,POST主要用在表单提交,表单提交的写法很多,比如: <button>提交</button> <input type="submit" value="提交"> <div id="submit">我用来提交表单</div> var sub = document.getElementById("submit"); sub.addEventListener("click",function(){ document.getElementById("test").submit(); }); 前两种方式在使用的时候非常不便,比如我们再检测它们点击之前需要进行表单验证,那么因为它们自身具有默认的提交功能,所以我们得把它们的默认功能阻止一下,所以使用第三种比较舒服。
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |