我有以下脚本可以很好地显示何时加载ajax:
$("#divLoading").ajaxStart(function () {
$('#divLoading').show();
});
$("#divLoading").ajaxComplete(function () {
$('#divLoading').hide();
});
然而,这似乎是在点击事件之后延迟开始,并且在屏幕上显示内容之前结束,即以下内容被解除,只是为了解释问题:
如果我点击执行ajaxy的按钮,点击按钮后5秒就会显示加载div。 div在屏幕上停留10秒钟,div消失,内容改变在div消失后5秒发生。
知道为什么会发生这种情况以及如何在任何点击事件发生时立即显示消息,并且只有在html加载到屏幕上时才会消失?
答案 0 :(得分:1)
发生这种情况是因为此函数在实际的ajax调用期间执行,而不是在单击处理程序和回调之前和之后执行,该回调在ajax调用的任一端都有。
如果查看代码,在ajax调用之前,你可能正在为按钮的click事件中的ajax调用做准备,然后在回调中ajax调用完成,因此消息被隐藏,但是你仍然需要完成代码。
答案 1 :(得分:0)
我不是JQuery的专家,但是当我在项目中完成AJAX调用后需要执行某些东西时,我有类似于你的情况,看起来它的工作原理如下:
$(document).ajaxStop(function() {
my_jquery_stuff();
});