网络-8【AJAX版本、响应状态、超时设置、同步与异步】

本文主要介绍了AJAX相关知识。包括XMLHttpRequest的Level 1和Level 2版本,Level 2改进了Level 1的缺点但存在兼容性问题;阐述了响应状态码及监听函数;说明了超时设置的属性和监听函数,且指出其兼容性不佳;还对比了同步与异步的区别,并给出解决异步请求问题的办法。

一.AJAX版本

XMLHttpRequest标准又分为Level 1 和Level 2

XMLHttpRequest Level 1 缺点:

  1. 无法发送跨域请求
  2. 不能非纯文本的数据
  3. 无法获取传输进度

XMLHttpRequest Level 2 改进

  1. 可以发送跨域请求
  2. 支持获取二进制数据(非纯文本数据)
  3. 支持上传文件
  4. formData对象
  5. 可以获取传输进度
  6. 可以设置超时时间

兼容性问题

  1. IE8/9/Opara Mini不支持xhr对象
  2. IE10/11不支持相应类型为JSON(XMLHttpRequest中不支持,在Active中支持)
  3. 部分浏览器不支持超时设置
  4. 部分浏览器不支持blob(文件对象的二进制数据)

二.响应状态

状态码

xhr.status/xhr.statusText:服务器回应的HTTP状态码/服务器发送的状态提示

200,OK访问正常

301,Moved Permanently ,永久移动

302,Move temporarily,暂时移动

304,Not Modified,未修改

307,Temporary Redirect,暂时重定向

401,Unauthorized,未授权

403,Forbidden,禁止访问

404,Not Found,未发现指定网址

500,Internal Server Error,服务器发生错误

304也代表成功所以在封装的AJAX中要考虑这种情况也为成功,如下:

监听函数

xhr.onloadstart 绑定HTTP请求发出的监听函数

xhr.onerror 绑定请求失败的监听函数(修改封装的AJAX)

xhr.onload 绑定请求成功完成的监听函数

xhr.onabort 绑定请求中止(调用了abort()方法)的监听函数

xhr.onloadend 绑定请求完成(不管成功与失败)的监听函数

loadstart->readyState ===4 ->load/error/abort/-> loadend

三.超时设置

xhr.timeout

多少毫秒后,如果请求仍然没有得到结果,就会自动终止。如果该属性等于0就表示没有时间限制

xhr.ontimeout

绑定请求超时一个监听函数,如果发生timeout事件,就会执行这个监听函数

超时响应程序的案例(清除计时器的注意事项)

兼容性不好

改进的方法设置timeout



 

四.同步与异步

字符串处理false传参

异步

同步

区别在于同步有阻塞,异步时同时进行得

通过datatype来确定返回类型返回不同数据

下方第一个AJAX不执行得问题

解决办法:每次doajax的时候实例化对象

之前是在外面声明的,导致异步得情况下两个请求公用一个实例


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值