0
点赞
收藏
分享

微信扫一扫

JS 时间线和异步

booksmg2014 2022-04-13 阅读 48

js时间线:浏览器用来记录js执行的状态
loading: init -loading
创建document ,element text节点;生成domtree 结构
document.readyState = loading
---------------
interactive:loading-interactive
解析html结构
css 
html
js
html 结构 解析完毕
document.readyState = interactive
DOMContentloaded:addEventlistenear()
异步加载的资源:
img src=
iframe src=
异步数据
complete:interactive-complete
document.readyState = complete

$(document).ready(function(){
   DOMContentloaded:
})
js单线程
1、js 执行 会导致 页面html 解析 阻塞
异步处理方式:独立开辟线程(子线程)(间接让js实现了“多线程”)
setTimeout()
setInterval()
ajax

优化:
body
<script>
</script>

js的异步加载:
<script async="async"></script> 下载js异步执行->立即执行 
<script defer="defer"></script>下载js异步执行->interactive后执行

原生ajax:异步通信
var xhr= new XMLHttpReqest();
    //post 请求 、传值到服务器
    xhr.setRequestHeader('content-type','application/x-www-form-urlencoded'); 
    xhr.open(method,url,true) // 设置请求的参数  false 同步
     请求的状态码:
      200 成功
      300
      400 服务器
      401
      500
    xhr.onreadystatechange = function(){
        if(this.status ==200 && this.readyState ==4 ){
                  this.response : 服务器响应的数据    
        }
    }
   // str ="key=value&key2=value2"
   xhr.send(str) 

异步:独立线程

get:数据 附着在地址栏上
post: 数据存储在requestHeader()

异步通信:与服务器做数据交互
无刷新请求: 页面的局部刷新
1、异步的表单提交
2、接口调用
3、部分无刷新请求数据的特效

举报

相关推荐

Js时间线

JavaScript 时间线

JavaScript时间线

【Layui】动态时间线

0 条评论