jQuery实现监控页面所有ajax请求的方法_jquery

本文实例讲述了jQuery实现监控页面所有ajax请求的方法。分享给大家供大家参考,具体如下:

你是不是有遇到这样的问题:页面发起两个ajax请求,希望它们都成功以后,再做一个动作?

很容易想到的解决方案是,等其中一个结束以后,再发起另外一个,这个过程用回调函数来完成。

但是,如果其中一个ajax请求的代码不是你写,你改不了,怎么办?

又或者说,你只想知道某个url请求什么时候结束,不想管其他的请求,怎么弄?

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
  </head>
  <body>
    <p id="test"></p>
  </body>
  <script src="js/jquery-1.11.0.min.js"></script>
  <!--首先在页面引入jquery的后面,紧接着以下代码:-->
  <script>
    //前提:所有ajax请求都是用jquery的$.ajax发起的,而非原生的XHR;
    var ajaxBack = $.ajax;
    var ajaxCount = 0;
    var allAjaxDone = function(){$('#test').append('all done!<br>');} //一行代码,就可以知道所有ajax请求什么时候结束
    //由于get/post/getJSON等,最后还是调用到ajax,因此只要改ajax函数即可
    $.ajax = function(setting){
      ajaxCount++;
      var cb = setting.complete;
      setting.complete = function(){
        if($.isFunction(cb)){cb.apply(setting.context, arguments);}
        ajaxCount--;
        if(ajaxCount==0 && $.isFunction(allAjaxDone)){
          allAjaxDone();
        }
      }
      ajaxBack(setting);
    }
  </script>
  <!--以下是别人的script-->
  <script>
    $.ajax({url: 'js/jquery-1.11.0.min.js', success: function(recv){$('#test').append('别人的ajax请求1,done<br>')}});
  </script>
  <script>
    $.get('css/main.css', null, function(recv){$('#test').append('别人的get请求,done<br>')});
  </script>
  <script>
    $.post('css/main.css', null, function(recv){$('#test').append('别人的post请求,done<br>')});
  </script>
</html>

其他的相关函数:

$.ajax 中:

error:当出错时调用,可以用来上报错误的请求。
complete:无论成功还是失败都会调用

高版本中:

$.promise
$.when

希望本文所述对大家jQuery程序设计有所帮助。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索jquery
, 监控
, ajax请求
jQuery监控ajax请求
jquery实现ajax请求、用jquery实现ajax请求、jquery ajax 跨域请求、jquery ajax get请求、jquery ajax同步请求,以便于您获取更多的相关知识。

时间: 2024-08-01 08:43:58

jQuery实现监控页面所有ajax请求的方法_jquery的相关文章

js与jQuery终止正在发送的ajax请求的方法_AJAX相关

本文实例讲述了js与jQuery终止正在发送的ajax请求的方法.分享给大家供大家参考,具体如下: 核心:调用XMLHttpRequest对象上的abort方法 jquery的ajax方法有自己的超时时间设置参数: $.ajax({type:'POST', url:'b.php', data:'', timeout:5000, success:function(){ } }) 同时 1. $.get返回的数据类型是XMLHttpRequest,请参考手册.($.post.$.ajax.$.get

js与jQuery终止正在发送的ajax请求的方法

本文实例讲述了js与jQuery终止正在发送的ajax请求的方法.分享给大家供大家参考,具体如下: 核心:调用XMLHttpRequest对象上的abort方法 jquery的ajax方法有自己的超时时间设置参数: $.ajax({type:'POST', url:'b.php', data:'', timeout:5000, success:function(){ } }) 同时 1. $.get返回的数据类型是XMLHttpRequest,请参考手册.($.post.$.ajax.$.get

jQuery取消ajax请求的方法_jquery

本文实例讲述了jQuery取消ajax请求的方法.分享给大家供大家参考.具体分析如下: 这里需要注意的是,在ajax请求未响应之前可以用xhr.abort()取消,但如果请求已经到达了服务器端,这样做的结果仅仅是让浏览器不再监听这个请求的响应,但服务器端仍然会进行处理 var xhr = $.ajax({ type: "POST", url: "test.php", data: "name=test", success: function(msg

jquery的ajax请求全面了解_jquery

jquery中封装了一些ajax请求的方法,很实用. 比如.ajaxComplete()--请求完成时.ajaxError()--请求失败时.ajaxSend()--在Ajax请求发送时附加一个function去执行.ajaxStart()--请求开始时,.ajaxStop()--请求结束时.ajaxSuccess()--请求成功时.load()--从服务端加载数据并将返回的HTML替换到选择的元素中jQuery.post()--使用HTTP POST请求加载服务端数据.serialize()-

jQuery取消ajax请求的方法

 本文实例讲述了jQuery取消ajax请求的方法.分享给大家供大家参考.具体分析如下: 这里需要注意的是,在ajax请求未响应之前可以用xhr.abort()取消,但如果请求已经到达了服务器端,这样做的结果仅仅是让浏览器不再监听这个请求的响应,但服务器端仍然会进行处理 1 2 3 4 5 6 7 8 9 10 11 var xhr = $.ajax({ type: "POST", url: "test.php", data: "name=test&quo

对象-gsp页面用ajax请求后台

问题描述 gsp页面用ajax请求后台 ajax请求后台,返回json对象,怎样取其中的值呢? 解决方案 bdata是一个集合的话要用for遍历输出集合中的对象属性.要是一个对象或者map的话可以直接 对象.属性 输出 解决方案二: 不懂你这种语言,转为json字符串输出看看结构才好取值.看你js代码必须是这种结构的{"result":"xxxx","status":"xxxx"} alert(JSON.stringify(b

java spring ajax jsp-jsp页面通过$.ajax请求java后台,但是页面跳转了

问题描述 jsp页面通过$.ajax请求java后台,但是页面跳转了 js代码: function sendForm() { alert("12345"), $.ajax({ type : "get", url : "code/checkcode", data : { "codeNum" : $("#codeNum") }, dataType : "json", success : fu

php判断是否为ajax请求的方法_php技巧

本文实例讲述了php判断是否为ajax请求的方法.分享给大家供大家参考,具体如下: 先说前端使用 jQuery 时怎么区分: jQuery 发出 ajax 请求时,会在请求头部添加一个名为 X-Requested-With 的信息,信息内容为:XMLHttpRequest 在后端可以使用 $_SERVER["HTTP_X_REQUESTED_WITH"] 来获取.(注意:中划线换成了下划线,不区分大小写) 由此,我们可以这样来判断是否为 ajax 请求: if(isset($_SERV

$.ajax()请求Action方法

问题描述 Struts2+hibernate3.2+spring2.0:$.ajax()请求Action方法,开始一直可以请求,也能正常返回.后来在别的Action中添加一个属性,在applicationContext.xml中配置了一下,我再次请求登录的那个Action方法时,既不请求,也不返回,根本就没走进Action.以前曾遇到过一次这个问题,但是我重新建一个Action,却好了,这次又遇见了,总这样也不是个办法,哎--,郁闷好久了,一直不明什么原因,请各位多多指点. 解决方案 解决方案二