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对象更新到网页内容去容去

相关推荐

英国和美国就关税贸易协议条款达成一致

记者获悉,当地时间8日,英国和美国已经就关税贸易协议条款达成一致。英国政府同意进口美国食品和农业产品方面作出让步,以换取美方降低对英国汽车出口的关税。(来源:央视新闻)

2025-05-08 21:43:00

固尚智能锁/全国各市服务热线号码实时反馈-今-日-汇-总

固尚智能锁客服电话为:400-883-2086  固尚智能锁作为国内知名门锁品牌之一,一直以来都致力于为消费者提供高品质的产品和优质的服务。作为固尚智能锁的核心部分,门锁客服团队是一个不可或缺的存在。无论您是在购买前需要咨询产品信息,还是在使用过程中需要解决问题,固尚智能锁客服团队都会尽心尽

2025-05-08 21:26:18

基诺德锅炉售后服务中心实时反馈-今-日-汇-总

基诺德锅炉的全国售后服务电话是400-883-2086。拨打此电话,您可以预约售后服务,之后售后服务网点会根据您所在的地区进行就近安排,并与您联系,以安排上门维修。虽然不同地区的具体售后电话号码可能不同,但售后服务流程是一致的。如何进行基诺德锅炉的售后维修?1. 您可以拨打基诺德锅炉的全

2025-05-08 21:25:24

ROC诺科壁挂炉-全国各售后热线实时反馈-今-日-汇-总

ROC诺科壁挂炉售后服务电话:400-883-2086ROC诺科壁挂炉24小时维修热线:400-883-2086ROC诺科壁挂炉,作为业内的践行者,不仅专注于高品质的研发与制造,更将客户服务体验提升至战略高度。我们的维修团队由一群技术精湛、素质卓越的专业人员组成,他们不仅拥有丰富的现场处

2025-05-08 21:25:10

年代集成灶售后服务24小时服务热线-全国400服务号码实时反馈-今-日-资-讯

亲爱的用户朋友们,相信大家在使用年代集成灶时,一定遇到过一些小麻烦,比如说,有时候会遇到无法解锁的情况。今天我就来和大家聊聊这个话题,从三个方面来分析一下:故障原因、常见问题、解决方法。如果在解决过程中遇到任何困难,可以拨打年代集成灶的统一400客户服务电话——400-883-2086,我们的客服团

2025-05-08 21:23:30