爱不释手的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();
});
前两种方式在使用的时候非常不便,比如我们再检测它们点击之前需要进行表单验证,那么因为它们自身具有默认的提交功能,所以我们得把它们的默认功能阻止一下,所以使用第三种比较舒服。
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
