ajax核心技术1---XMLHttpRequset对象的使用
2017-07-02 12:15
465 查看
AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML)。是指一种创建交互式网页应用的网页开发技术。
AJAX = 异步 JavaScript和XML(标准通用标记语言的子集)。ajax是一种用于创建高速动态网页的技术。
通过在后台与server进行少量数据交换,AJAX 能够使网页实现异步更新。这意味着能够在不又一次载入整个网页的情况下,对网页的某部分进行更新。从今天開始nie。小编開始和小伙伴们一起学习ajax的相关知识,这篇博文。小编主要简单的和大家介绍介绍XMLHttpRequset对象的使用,首先我们来看一下这个对象的属性还有方法。首先,我们来看属性,例如以下表所看到的:
接着,我们来看方法。例如以下表所看到的:
XMLHttpRequest的缩写为XHR。中文名字叫做可扩展超文本传输请求,Xml可扩展标记语言。Http超文本传输协议,Request请求。
XMLHttpRequest对象能够在不向server提交整个页面的情况下,实现局部更新网页。当页面所有载入完毕后。client通过该对象向server请求数据,server端接受数据并处理后。向client反馈数据。
XMLHttpRequest 对象提供了对 HTTP 协议的全然的訪问,包含做出 POST 和 HEAD 请求以及普通的 GET 请求的能力。XMLHttpRequest 能够同步或异步返回 Web server的响应。而且能以文本或者一个 DOM 文档形式返回内容。虽然名为 XMLHttpRequest,它并不限于和 XML 文档一起使用:它能够接收不论什么形式的文本文档。XMLHttpRequest 对象是名为 AJAX 的 Web 应用程序架构的一项关键功能。上面的两张图片对XHR有了一定的了解。接下来,就到了实战的时候了,我们这里用经典的五步法来介绍一下:
第一步、创建XHR对象。代码例如以下所看到的:
第二步、注冊回调方法:
AJAX = 异步 JavaScript和XML(标准通用标记语言的子集)。ajax是一种用于创建高速动态网页的技术。
通过在后台与server进行少量数据交换,AJAX 能够使网页实现异步更新。这意味着能够在不又一次载入整个网页的情况下,对网页的某部分进行更新。从今天開始nie。小编開始和小伙伴们一起学习ajax的相关知识,这篇博文。小编主要简单的和大家介绍介绍XMLHttpRequset对象的使用,首先我们来看一下这个对象的属性还有方法。首先,我们来看属性,例如以下表所看到的:
接着,我们来看方法。例如以下表所看到的:
XMLHttpRequest的缩写为XHR。中文名字叫做可扩展超文本传输请求,Xml可扩展标记语言。Http超文本传输协议,Request请求。
XMLHttpRequest对象能够在不向server提交整个页面的情况下,实现局部更新网页。当页面所有载入完毕后。client通过该对象向server请求数据,server端接受数据并处理后。向client反馈数据。
XMLHttpRequest 对象提供了对 HTTP 协议的全然的訪问,包含做出 POST 和 HEAD 请求以及普通的 GET 请求的能力。XMLHttpRequest 能够同步或异步返回 Web server的响应。而且能以文本或者一个 DOM 文档形式返回内容。虽然名为 XMLHttpRequest,它并不限于和 XML 文档一起使用:它能够接收不论什么形式的文本文档。XMLHttpRequest 对象是名为 AJAX 的 Web 应用程序架构的一项关键功能。上面的两张图片对XHR有了一定的了解。接下来,就到了实战的时候了,我们这里用经典的五步法来介绍一下:
第一步、创建XHR对象。代码例如以下所看到的:
var xmlhttprequest; if(window.XMLHttpRequest){ xmlhttprequest=new XMLHttpRequest(); if(xmlhttprequest.overrideMimeType){ xmlhttprequest.overrideMimeType("text/xml"); } }else if(window.ActiveXObject){ var activeName=["MSXML2.XMLHTTP","Microsoft.XMLHTTP"]; for(var i=0;i<activeName.length;i++){ try{ xmlhttprequest=new ActiveXObject(activeName[i]); break; }catch(e){ } } } if(xmlhttprequest==undefined || xmlhttprequest==null){ alert("XMLHttpRequest对象创建失败! !"); }else{ this.xmlhttp=xmlhttprequest; }
第二步、注冊回调方法:
<span style="font-size:18px;">xmlhttp.onreadystatechange=callback; </span>第三步、设置和server交互的对应參数:
<span style="font-size:18px;"> xmlhttp.open("GET","ajax?name=" +userName,true); </span>第四步、设置向server端发送的数据,启动和server端的交互:
<span style="font-size:18px;"> xmlhttp.send(null);</span>第五步、推断和server端的交互是否完毕。还要推断server端是否返回正确的数据:
<span style="font-size:18px;">//根基实际条件写callback的功能代码 function callback(){ if(xmlhttp.readState==4){ //表示server的对应代码是200;正确返回了数据 if(xmlhttp.status==200){ //纯文本数据的接受方法 var message=xmlhttp.responseText; //使用的前提是。server端须要设置content-type为text/xml //var domXml=xmlhttp.responseXML; //其他代码 } } } </span>通过这五步XMLHttpRequest基本上就创建好,能够正常使用了,如上面所看到的的,代码量有点多。导致每次创建的时候,我们都须要写如此多的代码,所以,我们能够将同样的部分抽象出来。使之成为一个独立的类,以下的是小编从网上搜索的一个,供小伙伴们參考一下`(*∩_∩*)′。不用客气!代码例如以下所看到的:
//类的构建定义,主要职责就是新建XMLHttpRequest对象 var MyXMLHttpRequest=function(){ var xmlhttprequest; if(window.XMLHttpRequest){ xmlhttprequest=new XMLHttpRequest(); if(xmlhttprequest.overrideMimeType){ xmlhttprequest.overrideMimeType("text/xml"); } }else if(window.ActiveXObject){ var activeName=["MSXML2.XMLHTTP","Microsoft.XMLHTTP"]; for(var i=0;i<activeName.length;i++){ try{ xmlhttprequest=new ActiveXObject(activeName[i]); break; }catch(e){ } } } if(xmlhttprequest == undefined || xmlhttprequest == null){ alert("XMLHttpRequest对象创建失败!! "); }else{ this.xmlhttp=xmlhttprequest; } //用户发送请求的方法 MyXMLHttpRequest.prototype.send=function(method,url,data,callback,failback){ if(this.xmlhttp!=undefined && this.xmlhttp!=null){ method=method.toUpperCase(); if(method!="GET" && method!="POST"){ alert("HTTP的请求方法必须为GET或POST!!!"); return; } if(url==null || url==undefined){ alert("HTTP的请求地址必须设置! "); return ; } var tempxmlhttp=this.xmlhttp; this.xmlhttp.onreadystatechange=function(){ if(tempxmlhttp.readyState==4){ if(temxmlhttp.status==200){ var responseText=temxmlhttp.responseText; var responseXML=temxmlhttp.reponseXML; if(callback==undefined || callback==null){ alert("没有设置处理数据正确返回的方法"); alert("返回的数据:" + responseText); }else{ callback(responseText,responseXML); } }else{ if(failback==undefined ||failback==null){ alert("没有设置处理数据返回失败的处理方法! "); alert("HTTP的响应码:" + tempxmlhttp.status + ",响应码的文本信息:" + tempxmlhttp.statusText); }else{ failback(tempxmlhttp.status,tempxmlhttp.statusText); } } } } //解决缓存的转换 if(url.indexOf("?")>=0){ url=url + "&t=" + (new Date()).valueOf(); }else{ url=url+"?+="+(new Date()).valueOf(); } //解决跨域的问题 if(url.indexOf("http://")>=0){ url.replace("? ","&"); url="Proxy? url=" +url; } this.xmlhttp.open(method,url,true); //假设是POST方式,须要设置请求头 if(method=="POST"){ this.xmlhttp.setRequestHeader("Content-type","application/x-www-four-urlencoded"); } this.xmlhttp.send(data); }else{ alert("XMLHttpRequest对象创建失败,无法发送数据! "); } MyXMLHttpRequest.prototype.abort=function(){ this.xmlhttp.abort(); } } }小编寄语:这篇博客,小编主要简单的介绍了一下XHR对象的一些方法和属性。还有经典的五步法。对于这些基础的知识。还须要小伙伴们在日常的学习中,多多动手实践。实习第二个月,精彩未完待续。
相关文章推荐
- ajax核心技术1---XMLHttpRequset对象的使用
- ajax核心技术---XMLHttpRequset对象的使用
- ajax核心技术1---XMLHttpRequset对象的使用
- ajax核心技术1---XMLHttpRequset对象的使用
- AJAX核心对象-- XMLHttpRequest 对象使用详解 (一)
- AJAX技术入门 第二节 XMLHttpRequest对象的使用
- 使用Ajax技术通过XMLHttpRequest对象完成首页登录功能
- AJAX核心对象-- XMLHttpRequest 对象使用详解 (二)
- AJAX核心对象-- XMLHttpRequest 对象使用详解 (二)
- Ajax-核心对象--XMLHttpRequest 对象使用详解
- 使用Ajax技术通过XMLHttpRequest对象完成首页登录功能
- AJAX核心对象-- XMLHttpRequest 对象使用详解 (一)
- AJAX核心对象-- XMLHttpRequest 对象使用详解 (一)
- Ajax核心对象 XMLHTTPRequest 五步学会使用
- AJAX核心对象-- XMLHttpRequest 对象使用详解 (二)
- AJAX核心对象-- XMLHttpRequest 对象使用详解 (一)
- AJAX核心对象-- XMLHttpRequest 对象使用详解 (二)
- AJAX核心对象-- XMLHttpRequest 对象使用详解 (二)
- AJAX核心对象-- XMLHttpRequest 对象使用详解
- AJAX核心对象-- XMLHttpRequest 对象使用详解 (一)