关于XML异步
记得有次面试的时候面试官问我知道AJAX吗?当时我回答听过但是没去看过,当时只是知道它和异步的概念有关。
经过查资料,弄明白了些头绪,下面就把我自己对AJAX的理解说说。
大多数浏览器是支持XMLHttprequest这个对象的,但是ie例外(查阅资料说5、6版本不支持),
所以为了兼容性,代码应该写成这样:
1.创建对象
var xhr;
if(window.XMLHttpRequest){
//大多数浏览器
xhr=new XMLHttpRequest();
}
if(window.ActiveXObject)
{
//ie 5 6
xhr=ActiveXObject("Miscrosoft.XMLHTTP");
}
这样就构建好了所需对象。
2.设置
get请求
xhr.open("get","/async.aspx",true);//设置请求行
xhr.send(null);//设置请求主体
xhr.onreadystatechange=function(){
if(xhr.status==200&&xhr.readyState){
//其他事务..
}
}
//其他事务..
post请求
xhr.open("post","/async.aspx",true);//设置请求行
xhr.setRequestHeader("Content-Type","application/x-www/form-urlencoded");//设置请求头
xhr.send("user=123&pwd=123");//设置请求主体
xhr.onreadystatechange=function(){
if(xhr.status==200&&xhr.readyState){
//其他事务...
}
}
//其他事务...
其中请求行的最后一个参数true代表异步,false代表同步,默认是true。
true表示脚本会在send()方法后继续执行,而不等待服务器响应。
readyState表示一种状态,
0,UNSET open尚未调用
1,OPENED open已经调用
2,HEADERS_RECEIVED 接受到头信息
3,LOADING 接受到头主体
4,DONE 响应完成
3.补充
get请求是没有请求中体的,所以不用设置请求体里的Content-Type.
post是通过请求主体来传递参数的,所以设置的Content-Type,就是为了告诉服务器要怎么解析传去的数据。
get是通过请求地址传递参数的,例如:xhr.open("get","a.aspx?user=123&pwd=123",true);
4.JQuery
以为现在很多情况下都不直接使用javascript了,而是使用到它的封装.
JQuery里面对XMLHttpRequest进行了封装,进而有了$.post();$.ge();$.ajax()....等方法。
对于是如何封装的,由于本人还没看过,所以还不敢下断言。
所以本人理解并不是异步请求,而是不等待服务器响应。send在请求的时候还是按照代码的先后顺序执行。
关于XML异步的更多相关文章
- struts2实现XML异步交互
异步交互,在不用重新提交整个页面的情况下可以实现页面局部信息与服务器的交互.在编写异步交互时需要用到一个架包:dom4j,下载地址为:https://dom4j.github.io/ 下面通过例子说明 ...
- 异步处理XML异步数据——以原生的JavaScript与jQuery中的$.ajax()为例
此文档解决以下问题: 一.原生的JavaScript从服务器端输出XML格式数据 1.XMLHttpRequest对象的运用 XMLHttpRequest对象的open()方法 XMLHttpRequ ...
- XML异步请求实例
其实还是很格式化的: <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type&qu ...
- ajax(Asynchronous JavaScript and XML) 异步js或者xml
1.XMLHttpRequest 对象:向服务器发送局部的请求,异步获取执行 a.浏览器支持 b.语法: xmlhttp==new XMLHttpRequest(); xmlhttp.open(&qu ...
- Apache Commons Digester 二(规则模块绑定-RulesModule、异步解析-asyncParse、xml变量Substitutor、带参构造方法)
前言 上一篇对Digester做了基本介绍,也已经了解了Digester的基本使用方法,接下来将继续学习其相关特性,本篇主要涉及以下几个内容: 规则模块绑定,通过定义一个RulesModule接口实现 ...
- ajax同步、异步执行简单理解与证明
此理解范例代码来自前几篇随笔! 首先我们来先了解下AJAX: Ajax:全称“Asynchronous Javascript and XML”(异步Javascript和XML),他是由Javascr ...
- 【XML】 XML格式一些记录
XML XML格式常用于网络通讯,本身不会有作为而是作为纯文本传输,可以说它是一种独立于应用和硬件的数据传输工具.虽然看起来XML比HTML要更加简单,也知道的更加晚一点,但是需要知道的是,XML才是 ...
- struts2实现jQuery的异步交互
struts2中jQuery的异步交互有两种方式: 1)是利用构造字符串的方式来实现: 使用该方法主要是在服务器端根据前端的请求,返回一个字符串信息,然后前端的jQuery通过解析该字符串信息得到对应 ...
- 【java项目实践】具体解释Ajax工作原理以及实现异步验证username是否存在+源代码下载(java版)
一年前,从不知道Ajax是什么,伴随着不断的积累,到如今常常使用,逐渐有了深入的认识. 今天,假设想开发一个更加人性化,友好,无刷新,交互性更强的网页,那您的目标一定是Ajax. 介绍 在具体讨论Aj ...
随机推荐
- 【t014】拯数
[题目链接]:http://noi.qz5z.com/viewtask.asp?id=t014 [题意] [题解] 这个锁的序列,如果把末尾的0去掉; 然后再倒过来; 那么就是这个序列对应的格雷码了; ...
- Java String类习题
package javafirst; public class StringTest02 { public static void main(String[] args){ //习题一 使用大小写的转 ...
- 一起学Python:字符串介绍
字符串介绍 <1>python中字符串的格式 如下定义的变量a,存储的是数字类型的值 a = 100 如下定义的变量b,存储的是字符串类型的值 b = "hello itcast ...
- windows 下使用 virtualenv 创建虚拟环境
virtualenv虚拟环境为每个项目隔离了一套运行类库,不同的项目在各自的虚拟环境中使用不同的类库,避免了将所有类库都安装到系统环境中导致的不同项目需要不同(版本)类库的问题,项目与项目之间的类库依 ...
- vmware合并多个虚拟硬盘文件(使用vmware-vdiskmanager.exe)
有时,当我们创建虚拟机vmware里面的应用程序,我们可能会选择创建分割的虚拟磁盘中的多个文件2GB的文件,这是为了提高复制过程,主要用于存储虚拟机文件系统不支持创建更大的文件.还有种情况是虚拟化物理 ...
- 纯洁CSS3实现图片墙
预赛 DIV+CSS基金会 CSS3的transform 和 transition说明 主要用于transform的rotate/scale 动画过渡的几个參数(transition-property ...
- 它们的定义Activity跳转动画
本来觉得是一个非常小的需求, 后来我发现总是 错误, 采用Theme于 4.0在 操作不是很容易使用. 后来查阅资料, 须要在finish 后面 和 startActivity 后面加入 overri ...
- Frequentist 观点和 Bayesian 观点
1. Frequentist view Frequentist approach views the model parameters as unknown constants(未知的常数,而不是一个 ...
- WPF范围选择控件(RangeSelector)
原文:WPF范围选择控件(RangeSelector) 版权声明:本文为博主原创文章,转载请注明作者和出处 https://blog.csdn.net/ZZZWWWPPP11199988899/art ...
- Qt Installer Framework 3.0.1 Released(功能比较强)
We are happy to announce the release of Qt IFW 3.0.1. 3.0.1 is fully compatible with 2.0.5, which me ...