ajax原理以及优缺点是什么?

更新时间:2024-08-15 15:33:00

Ajax指Asynchronous JavaScript and XML(异步的 JavaScript 和 XML),最大的优点是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容。而实现的原理基础就是:网页DOM对象可以精确地对网页中的部分内容进行操作、XML作为单纯的数据存储载体使得客户端与服务器交换的只是网页内容的数据而没有网页样式等等的附属信息、XMLHttpRequest是与浏览器本身内置的request相互独立的与服务器交互的请求对象。

网页应用Ajax与服务器交互的抽象过程如下图:

过程详解:

1: 要使用Ajax技术,基础中的基础,就是要创建一个XMLHttpRequest对象,无它就没有异步传输的可能:

var xmlhttp;

if (window.XMLHttpRequest) { //检查浏览器的XMLHttpRequest属性,如果为真则支持XMLHttpRequest

// IE7+, Firefox, Chrome, Opera, Safari 浏览器执行代码

xmlhttp=new XMLHttpRequest();

} else {

// IE6, IE5 浏览器执行代码

xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");

}

2:在网页中为某些事件的响应绑定异步操作:通过上面创建的xmlhttp对象传输请求、携带数据。在发出请求前要先定义请求对象的method、要提交给服务器中哪个文件进行请求的处理、要携带哪些数据、是否异步。

其中,与普通的request提交数据一样,这里也分两种方法:GET/POST

xmlhttp.open("GET","/try/ajax/demo_get2.php?fname=Henry&lname=Ford",);

xmlhttp.send();

xmlhttp.open("POST","/try/ajax/demo_post2.php","Content-type","application/x-www-form-urlencoded");

xmlhttp.send("fname=Henry&lname=Ford");

3:服务器收到请求后,把附带的数据作为输入传给处理请求的文件,例如这里:把fname=Henry&lname=Ford作为输入,传给 /try/ajax/demo_get2.php 这个文件。然后文件根据传入的数据做出处理,最终返回结果,通过response对象发回去。客户端根据xmlhttp对象来获取response内容,然后调用DOM对象根据response内容来局部修改网页内容。

xmlhttp.onreadystatechange=function()

{

if (xmlhttp.readyState==4 && xmlhttp.status==200)//请求处理完毕且状态为成功

{

document.getElementById("myDiv").innerHTML=xmlhttp.responseText;//用response内容来修改DOM中的元素的内容

}

其中,response的类型有两种:字符串类型和XML文本。两种回应的不同提取如下:

responseText 属性返回字符串形式的响应:

document.getElementById("myp").innerHTML=xmlhttp.responseText;

如果来自服务器的响应是 XML,需要作为 XML 对象进行解析,使用 responseXML :

xmlDoc=xmlhttp.responseXML; //获取服务器响应的XML文本并转换得到XMLDOM对象

txt="";

x=
xmlDoc.getElementsByTagName("ARTIST");//通过XMLDOM对象调用方法来获取XML对象中的内容

for (i=0;i<x.length;i++) {

txt=txt + x[i].childNodes[0].nodeValue + "<br>"; }

document.getElementById("myDiv").innerHTML=txt;//把获取到的内容通过document对象更新到网页内容去容去

相关推荐

欧恒燃气灶全国统一售后24小时受理客服中心‌实时反馈-今-日-更-新

欧恒燃气灶全国服务热线:400-883-2086随时为您解决家电维修问题无论我们多么小心使用家电产品,总会有一天出现故障的时候。面对这种情况,许多人可能会感到困惑和无助,不知道该去哪里寻求帮助。作为家电维修问题的专家,我们建议您拨打欧恒燃气灶全国服务热线:(以产品说明书或保修卡电话为准)。这个热

2025-04-21 11:22:06

诺克司燃气灶用户售后服务中心实时反馈-今-日-更-新

如电器使用过程中出现问题给您带来不便,我们深表歉意,麻烦您拨打公司客服热线(400-883-2086),我们将安排工作人员为您提供上门维修服务,感谢您的来电! 服务区域;全市各区及周边等辖区均有维修网点,统一报修,就近安排维修上门服务一、能工巧匠:为您提供优质服务《工程师背景

2025-04-21 11:21:52

Vanward壁挂炉售后服务热线号码-全国各售后号码实时反馈-今-日-资-讯

Vanward壁挂炉售后服务电话:400-883-2086Vanward壁挂炉24小时客服热线:400-883-2086Vanward壁挂炉24小时人工客服、线下专业全国网点及各地区 专业人员服务团队等专属服务,整个报修流程规范有序,后期同步跟踪查询公开透明。所有专业团队均经过专

2025-04-21 11:19:06

钻麦保险柜全国各市售后热线号码实时反馈-今-日-资-讯

钻麦保险柜全国售后服务点热线号码是:400-883-2086,这是一条全年无休、24 小时在线的人工服务热线。无论您是急需取用重要物品却发现其出现故障,还是日常使用中察觉到异常,拨打该热线,钻麦保险柜专业售后团队将迅速响应,为您提供帮助。接下来为您详细介绍钻麦保险柜常见故障分析。钻麦保险柜全国各

2025-04-21 11:17:50

马沃斯保险柜全国统一售后24小时受理客服中心‌实时反馈-今-日-资-讯

马沃斯保险柜售后电话400-883-2086马沃斯保险柜深知用户在使用指纹锁过程中可能遇到各类问题,特设立全国 24 小时售后服务热线:400-883-2086 。无论何时,只要您的马沃斯保险柜出现状况,都能拨打该热线,专业客服团队将迅速响应,为您答疑解惑,安排维修事宜。马沃斯保险柜全国

2025-04-21 11:17:26