zoukankan      html  css  js  c++  java
  • 如何终止正在在发送的ajax请求

    核心:调用XMLHttpRequest对象上的abort方法

    jquery的ajax方法有自己的超时时间设置参数:

    $.ajax({type:'POST',
        url:'b.php',
        data:'',
        timeout:5000,
        success:function(){
            
        }
    })
    同时
    1. $.get返回的数据类型是XMLHttpRequest,请参考手册。($.post、$.ajax、$.getJSON、$.getScript也同样)

    2. XMLHttpRequest对象有abort()方法 

    也可以自己手动去调用abort方法:

    <script src = "jquery-1.4.4.js"></script>
    <script>
    var xhr = $.ajax({type:'POST',
        url:'b.php',
        data:'',
        success:function(){
            alert('ok');
        }
    })
    alert(xhr);
    
    console.log(xhr);
    </script>
    <button id="song">abort</button>
    <script>
    $(function(){
        $("#song").click(function(){
            alert('click');
            xhr.abort();
        })
    })
    </script>

    对于原生的xhr:

    xmlHttp.open("POST","theUrl",true);
    xmlHttp.onreadystatechange=function(){
        ...//得到响应之后的操作
    }
    xmlHttp.send();
    //设置8秒钟后检查xmlHttp对象所发送的数据是否得到响应.
    setTimeout("CheckRequest()","8000");
    
    function CheckRequest(){
       //为4时代表请求完成了    
        if(xmlHttp.readyState!=4){
            alert('响应超时');
            //关闭请求
            xmlHttp.close();
        }
    }
  • 相关阅读:
    51Nod 1267 4个数和为0 二分
    51Nod 1090 3个数和为0 set 二分优化
    51Nod 1001 数组中和等于K的数对 Set
    Codeforces 890C
    Codeforces 890B
    Codeforces 890A
    51nod 1058 N的阶乘的长度 位数公式
    C#调用本机摄像头
    读取、写入excel数据
    数据库笔记--基本应用
  • 原文地址:https://www.cnblogs.com/siqi/p/2798093.html
Copyright © 2011-2022 走看看