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

 更新时间:2015年12月10日 11:24:13   作者:思齐_  
这篇文章主要介绍了jQuery实现监控页面所有ajax请求的方法,涉及jQuery中ajax请求的判定技巧,具有一定参考借鉴价值,需要的朋友可以参考下

本文实例讲述了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实现页面顶部显示的进度条效果完整实例

    jQuery实现页面顶部显示的进度条效果完整实例

    这篇文章主要介绍了jQuery实现页面顶部显示的进度条效果,以完整实例形式分析了jQuery基于animate与setTimeout定时触发实现进度条渐进显示功能,非常简单实用,需要的朋友可以参考下
    2015-12-12
  • jQuery语法总结和注意事项小结

    jQuery语法总结和注意事项小结

    jQuery是继prototype之后的又一个优秀的Javascript框架,它是一个简洁快速灵活的JavaScript框架,它能让你在你的网页上简单的操作文档、处理事件、实现特效并为Web页面添加Ajax交互
    2012-11-11
  • 浅谈jQuery before和insertBefore的区别

    浅谈jQuery before和insertBefore的区别

    下面小编就为大家带来一篇浅谈jQuery before和insertBefore的区别。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12
  • jQuery中click事件的定义和用法

    jQuery中click事件的定义和用法

    这篇文章主要介绍了jQuery中click事件的定义和用法,以实例形式详细分析了jQuery中的click事件具体定义方法、参数及用法实例,具有一定的参考借鉴价值,需要的朋友可以参考下
    2014-12-12
  • JQuery触发事件例如click

    JQuery触发事件例如click

    JQuery触发事件的通常写法,比如click事件的触发如下所示,感兴趣的朋友可以参考下
    2013-09-09
  • jQuery学习笔记(2)--用jquery实现各种模态提示框代码及项目构架

    jQuery学习笔记(2)--用jquery实现各种模态提示框代码及项目构架

    想实现一个模态的框框,找了很多的jquery插件,都没有碰到自己满意的于是自己摸索了一个,接下来为大家介绍下实现的思路及代码,希望对你有所帮助
    2013-04-04
  • jQuery+Datatables实现表格批量删除功能【推荐】

    jQuery+Datatables实现表格批量删除功能【推荐】

    这篇文章主要介绍了jQuery+Datatables实现表格批量删除功能,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-10-10
  • 一款简单的jQuery图片标注效果附源码下载

    一款简单的jQuery图片标注效果附源码下载

    在一些电商网站和家居网站上我们会看到这样的应用,一张图片中显示多种商品,点击每个商品可以弹出对应商品的简单介绍,包括价格等等,极大的提高了用户体验,今天我们通过实例给大家分享使用jQuery插件来实现这一效果
    2016-03-03
  • jquery利用命名空间移除绑定事件的方法

    jquery利用命名空间移除绑定事件的方法

    这篇文章主要介绍了jquery利用命名空间移除绑定事件的方法,实例分析了jQuery命名空间及事件绑定的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • jQuery动态生成的元素绑定事件操作实例分析

    jQuery动态生成的元素绑定事件操作实例分析

    这篇文章主要介绍了jQuery动态生成的元素绑定事件操作,结合实例形式分析了jQuery事件绑定的原理及动态生成的元素绑定事件相关操作技巧,需要的朋友可以参考下
    2019-05-05

最新评论