我正在用jquery发出AJAX请求,例如:
$.get('/Stuff.php', function (data) { $('#own').html(data); });
在加载此数据时,我想在页面顶部显示一个小的文本(上面仅显示“正在加载…”), 而不会阻止它 。
这该怎么做?
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,也不会中断。