【Ajax(技术方案)】通过浏览器的代码调试了解readySta

2018-08-21  本文已影响142人  动感超逗

通过浏览器的代码调试了解readyState的0~4步的状态

readyState:存有 XMLHttpRequest 的状态。从 0 到 4 发生变化。

//0: 请求未初始化
//1: 服务器连接已建立
//2: 请求已接收
//3: 请求处理中
//4: 请求已完成,且响应已就绪

我们创建一个简单的Ajax请求代码如下

<script>
    var btn = document.querySelector('.query-area button')
    var input = document.querySelector('.query-area input')
    var detailCt = document.querySelector('.detail-area ul')

    btn.addEventListener('click', function(){
        var xhr = new XMLHttpRequest()
        xhr.onreadystatechange = function(){
            if(xhr.readyState == 4 && (xhr.status == '200' || xhr.status == '304')){
                var friends = JSON.parse(xhr.responseText)
                var html = render(friends)
                detailCt.innerHTML = html
            }
        }
        xhr.open('get', '/friends?username=' + input.value, true)
        xhr.send()
    })
</script> 

然后我们通过监听的onreadystatechange事件打断点看看readyState0~4分别是什么状态如下图


image.png

然后我们发送请求分别看看个状态下的情况

0: 请求未初始化

  红框内表示XMLHttpRequest的状态
  xhr:undefined
image.png

执行下一步


image.png

1: 服务器连接已建立

xhr.readyState = 1 
xhr.status = '0' 
image.png

2: 请求已接收

xhr.readyState = 2 
xhr.status = '200' 
image.png

3: 请求处理中

xhr.readyState = 3 
xhr.status = '200' 
能看到获取的数据了
image.png

4: 请求已完成,且响应已就绪

xhr.readyState = 4 
xhr.status = '200' 
此时前端能获取到数据展示在页面了
image.png
上一篇下一篇

猜你喜欢

热点阅读