ajax学习笔记整理
ajax:异步Javascript和XML、异步js脚本和XML通常用于实现页面的部分异步刷新,这对提高用户体验非常有帮助。XML在多语言中有优势,但Ajax技术实际上使用JSON对象而不是XML来处理数据。AJAX的历史…性知识
ajax属于Web前端开发技术,与Javascript有着密切的联系。ajax是一种无刷新技术的异步通信,这种技术可以有多种方式。网景浏览器(Netscape)创始人公司首先发明了Livescript的脚本语言,用于形成丰富的网页元素,显示动态效果。然后对Javascript语言诞生后的版本升级,而今年微软(微软)公司也看到了互联网的未来,并开始涉足互联网行业的力量,Jscript语言的推出,但目前还没有成熟的Javascript,发育延迟。最终微软公司在互联网上推广MS为ns的长期收购过程。
在这里,我们提到动态超文本标记语言(HTML)是将Javascript放在DOM树的元素节点中,并为元素提供动态显示行为。
Ajax代码的想法
创建请求对象
配置请求对象并将其发送到服务器
服务器响应请求对象
(1)创建一个请求对象作为一个对象来与服务器通信:
功能程序都会(){
尝试{
无功要求=新的XMLHttpRequest();
} catch(tryms){
尝试{
请求=新的ActiveX对象(MSXML2. XMLHTTP );
} catch(otherms){
尝试{
请求=新的ActiveX对象(微软。XMLHTTP );
} catch(失败){
请求= null;
}
}
}
返回请求;
}
注:微软的ActiveX对象是具体的编程对象,和两个不同的版本是由不同的browsers.xmlhttp支持是一组API,可以传输或通过一个脚本语言如Javascript的HTTP协议接收XML数据和其他数据。
获取请求对象请求后,它具有以下属性:
常用的是onreadystatechange,readyState,完成状态。
(2)配置请求对象并将其发送到服务器:
var =程序都会要求();
Request.open(
要求showresponse onreadystatechange =;
Request.send(空);
打开,把方法都从请求对象,原型__proto__:XMLHttpRequest XMLHttpRequest打开可以看到:
(open)方法有三个参数,第一个方法是用于发送请求(GET或发帖,然后总结差异,第二个)是服务器端脚本URL(文件可以是任何类型的文件),是否指定了第三个参数进行异步处理(默认为真异步)。
发送()方法将请求发送到服务器。
我注意到这里,请求。onreadystatechange = showresponse;代码的位置不同,与控制台输出响应的内容是不同的。想想看,该回调函数加入到任务队列是一定的输出不同的时机,如现在的位置,
要求。onreadystatechange = showresponse;开放之前和之后的发送,当代码分析的要求。onreadystatechange = showresponse;当readystates = 1(请求和服务器建立了一个又一个的),然后当readystates从1变为2,增加的showresponse回调函数中等待执行的任务队列,发生从2变化到3,回调函数showresponse二到任务队列,发生从3变化到4,回调函数重新排队。所以想当主代码执行时,控制台将输出的请求,而服务器已收到。发送后,请求正在处理,请求已经完成。
(3)服务器响应请求对象,js可以处理响应内容。
功能showresponse(){
如果(请求。发生= 0){
console.log(请求未初始化,再打开);
} else if(请求。发生= 1){
console.log(请求已被提出,服务器的连接已经建立,在发送打开);
} else if(请求。发生= 2){
console.log(请求已发送,服务器已收到,发送后');
} else if(请求。发生= 3){
console.log(请求正在处理中);
} else if(请求。发生= 4){
console.log(请求已完成的);
如果(请求=状态= 200){
/ / request.responsetext;
}
}
}
上面的代码是唯一的轨道发生变化,与实际项目中的代码不多,底部是实际的主要代码:
功能showresponse(){
如果(请求。发生= 4){
如果(请求=状态= 200){
/ / request.responsetext;
}
}
}
ps有什么问题:ajax
我们都知道,当客户机向服务器请求一个页面时,服务器首先动态地计算并生成页面,然后将其发送给客户机。客户机浏览器按顺序编译和呈现页面。
在没有Ajax的情况下:如果页面有一个用户身份验证控件,那么在客户端浏览器上呈现用户验证控件,服务器将等待结果,以便继续接收显示页面元素的结果。验证过程通常读取数据库操作,这就是所谓的同步模式。这样,将由假死状态呈现。
在使用Ajax时,提交给客户端验证请求的相同验证控件将继续显示其他元素的顺序。在验证结果时,由客户端Javascript修改内存对象中的DOM并将其呈现给用户(注意:此更改是DOM对象的内存,而客户端接收的页面文件没有变化)。这样,使用异步方式,就不会有假死状态,而客户端也会节省等待服务器返回时间开销时的结果。