【web】 ajax

ajax

原生ajax

解决了什么问题?

在不刷新网页的情况下去更新数据

兼容写法:

if(window.ActiveXObject){
ajax new ActiveXObject("Microsoft.XMLHTTP");
}else if(window.XMLHttpRequest){
ajax new XMLHttpRequest();}

E6不兼容:
XMLHttpRequest

步骤

新建

var xhr=new XMLHttpRequest();

配置
  • xhr.open(请求方式,请求地址,是否异步)

e.g. xhr.open('GET','http://jsonplaceholder.typicode.com/posts'),第三个参数不写就是true 异步

  • 同步
    • ajax.open(“get”,”xxx.php”,false);
    • ajax.open(“post”,xxx.php,false)
      • ajax.setRequestHeader(“Content-.Type”,“application/,x-ww-form-urlencoded”);
  • 异步
    • ajax.open(“get”,”xx.php”,true)
    • ajax.open(“post”,Xxx.php,true)
      • ajax.setRequestHeader(“Content-.Type”,“application/,x-ww-form-urlencoded”);
    • 发送后状态值readystate
      • 0 对象已建立,还未初始化,未调用send
      • 1 open已调用,未调用send
      • 2 send已调用,其它未知
      • 3 请求已发送,正在接收数据
      • 4 表示数据已经收到
响应

xhr.onreadystatechange=function(){ console.log(ajax.responseText);}

发送

xhr.send();

  • 发送后返回四种参数
    • responseText 作为响应的主体返回的文本
    • responseXML
    • status
      • 200成功
      • 202请求接受,处理未完成
      • 400语法错误
      • 404找不到指定ur
      • 500内部服务器错误
    • statusText 跨浏览器时可能不太一致

什么是同步异步

(js是单线程,但是处理的时间点不同就有异步)

  • 同步:上一个任务结束下一个任务再开始

      比如alert弹窗,或者登录注册流程(淘宝:先登录上去才能购买)
    
  • 异步:按顺序开始不一定按顺序结束

      比如图片加载,上传下载等任务
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值