一尘不染

发出AJAX请求时使用jQuery显示加载栏

ajax

我正在用jquery发出AJAX请求,例如:

$.get('/Stuff.php', function (data) {
    $('#own').html(data);
});

在加载此数据时,我想在页面顶部显示一个小的文本(上面仅显示“正在加载…”), 而不会阻止它

这该怎么做?


阅读 195

收藏
2020-07-26

共1个答案

一尘不染

3nigma步入正轨,但至少在一般情况下,有一个细节是错误的。

使用ajaxSetup仅提供默认值,如果以后您进行一些ajax调用,这些调用指定它们自己的beforeSend回调(即,您需要设置一些特定的标头)或完成(您要同时处理成功和错误),它们将覆盖ajaxSetup和您的加载指示器将中断。

而是使用Global Ajax Events有关Ajax事件的更多信息

$(document).ajaxSend(function(e, jqXHR){
  //show the loading div here
});
$(document).ajaxComplete(function(e, jqXHR){
  //remove the div here
});

这是一个更通用的解决方案,即使其他代码也希望如此设置这样的全局或局部beforeSend / complete处理程序或调用ajaxSetup,也不会中断。

2020-07-26