处理所有AJAX调用的通用方法

时间:2013-11-08 12:10:20

标签: javascript jquery ajax

有没有办法检测所有AJAX调用(GET和POST)?在AJAX调用进程运行时,我需要以通用的方式显示加载div。类似下面的代码:

$.ajax({
   url: 'my/url',
   type: "GET",
   dataType: "json",
   beforeSend: function() {
       $('#loading').show();
   },
   success: function() {
       $('#loading').hide();
       // do some stuff...
}

而是调用每个AJAX beforeSend()success()行为(显示和隐藏加载div),我正在寻找一种通用的方法来处理它。当我有一个AJAX调用时,我就这样做了:

$.ajax({
   url: 'my/url',
   type: "GET",
   dataType: "json",
   success: function() {
       // do some stuff...
}

beforeSend()行为隐含在此请求中时,success()隐藏行为相同。你知道我怎么能对待这件事吗?

谢谢大家!

2 个答案:

答案 0 :(得分:4)

是的,您可以使用.ajaxStart()& .ajaxStop()等方法:

$(document).ready(function () {
    $(document).ajaxStart(function () {
        $('#loading').show();
    }).ajaxStop(function () {
        $('#loading').hide();
    });
});

答案 1 :(得分:2)

有趣的是,我今天早上试图自己做这个!

$('#loading').bind('ajaxSend', function() {
    $(this).show();
}).bind('ajaxStop', function() {
    $(this).hide();
}).bind('ajaxError', function() {
    $this.hide();
});

显然,有很多不同的方法可以实现这一点,但我更喜欢将加载消息的可见性绑定到AJAX事件,而不是相反...