zoukankan      html  css  js  c++  java
  • Ajax请求重复发送问题

    设置一个标识位,表示是否正在发送请求let isSending = false
    具体代码:

    // 1.创建对象
            let xhr = null
            let isSending = false
            const btn = document.getElementsByTagName('button')[0]
    
            btn.onclick = function(){
                if(isSending) xhr.bort()//如果正在发送请求,则取消该请求,并生成一个新的XHR
                xhr = new XMLHttpRequest()
                isSending = true//此时为正在发送请求
                // 2.初始化,设置请求方法和url
                xhr.open('GET', 'http://localhost:8000')
                // 3.发送
                xhr.send()
                // 4.事件绑定,处理服务端返回的结果
                xhr.onreadystatechange = function(){
                    // 判断返回结果,0,1,2,3,4
                    if(xhr.readyState===4){//服务端返回了所有的结果
                        // 判断响应状态码
                        isSending = false//此时已收到相应,代表请求已经发送完
                    }
                }
    
            }
    
  • 相关阅读:
    等价表达式
    读入字符串
    n以内质数占的比例
    图论——最小生成树_prim
    搜索
    图论——最小生成树
    线段树模板
    WC总结
    三练斜率优化
    斜率优化技巧——换个角度思考
  • 原文地址:https://www.cnblogs.com/pangqianjin/p/14791173.html
Copyright © 2011-2022 走看看