Ajax是一种在网页上无需刷新页面的技术,通过使用JavaScript和XMLHttpRequest对象实现与服务器之间的数据交互。在Ajax中,有许多常用的属性可以用来控制和处理数据的传输和响应。下面将介绍五个常用的Ajax属性,并举例说明它们的用法。
第一个常用的Ajax属性是onreadystatechange,这个属性用来指定当readyState改变时执行的函数。readyState表示XMLHttpRequest对象的状态,它有五个可能的值:0表示未初始化,1表示正在加载,2表示已加载,3表示交互中,4表示完成。下面的例子演示了在响应完成时执行一个函数:
<script> function loadXMLDoc() { var xmlhttp; if (window.XMLHttpRequest) { xmlhttp = new XMLHttpRequest(); } else { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { document.getElementById("myDiv").innerHTML = this.responseText; } }; xmlhttp.open("GET", "ajax_info.txt", true); xmlhttp.send(); } </script> <button onclick="loadXMLDoc()">点击加载</button> <div id="myDiv"></div>在上述示例中,通过定义onreadystatechange属性为一个匿名函数,当readyState为4且status为200时,将响应的文本内容显示在id为"myDiv"的
元素中。
第二个常用的Ajax属性是responseText,它用来获取作为字符串形式的响应数据。例如,下面的代码演示了如何将响应数据显示在网页上:
function loadXMLDoc() { var xmlhttp; if (window.XMLHttpRequest) { xmlhttp = new XMLHttpRequest(); } else { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { document.getElementById("myDiv").innerHTML = this.responseText; } }; xmlhttp.open("GET", "ajax_info.txt", true); xmlhttp.send(); }在这个例子中,当Ajax请求完成并且响应状态为200时,responseText属性被用于将响应数据显示在id为"myDiv"的
元素中。
第三个常用的Ajax属性是status,它表示服务器响应的HTTP状态代码。通常,200表示成功,404表示未找到,500表示服务器错误等。如下示例展示了如何通过检查status属性来处理HTTP状态代码:
function loadXMLDoc() { var xmlhttp; if (window.XMLHttpRequest) { xmlhttp = new XMLHttpRequest(); } else { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { document.getElementById("myDiv").innerHTML = this.responseText; } else if (this.readyState == 4 && this.status == 404) { alert("请求的页面不存在!"); } }; xmlhttp.open("GET", "ajax_info.txt", true); xmlhttp.send(); }在上述例子中,当响应状态为404时,弹出一个警告框来提示用户请求的页面不存在。 第四个常用的Ajax属性是statusText,它包含HTTP状态代码的状态文本。与status类似,它可以用来处理不同的HTTP状态。下面的代码演示了如何使用statusText属性来处理不同的状态返回:
function loadXMLDoc() { var xmlhttp; if (window.XMLHttpRequest) { xmlhttp = new XMLHttpRequest(); } else { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { document.getElementById("myDiv").innerHTML = this.responseText; } else if (this.readyState == 4 && this.status == 404) { alert("请求的页面不存在!"); } else { alert("发生了一个错误:" + this.statusText); } }; xmlhttp.open("GET", "ajax_info.txt", true); xmlhttp.send(); }在上述示例中,如果响应状态不是200或404,则弹出一个警告框,显示相应的错误信息。 最后一个常用的Ajax属性是responseXML,它用于返回一个表示响应数据的XML文档对象。这个属性通常用于解析XML响应,下面的例子展示了如何解析一个XML响应并将其中的数据显示在网页上:
function loadXMLDoc() { var xmlhttp; if (window.XMLHttpRequest) { xmlhttp = new XMLHttpRequest(); } else { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { var xmlDoc = this.responseXML; var x = xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue; document.getElementById("myDiv").innerHTML = x; } }; xmlhttp.open("GET", "ajax_info.xml", true); xmlhttp.send(); }在上述示例中,将响应的XML数据解析为一个XML文档对象,并使用getElementsByTagName()方法获取其中的"title"元素,并将其值显示在id为"myDiv"的
元素中。
总结起来,Ajax中常用的属性有onreadystatechange、responseText、status、statusText和responseXML。这些属性可以帮助我们控制和处理与服务器之间的数据交互,并实现网页的动态更新效果。通过合理地应用这些属性,我们可以更好地使用Ajax技术来提升用户体验,并优化网页的性能。