在没有AJAX的情况下在jQuery中显示加载GIF?

时间:2010-09-27 08:48:19

标签: javascript jquery timeout loading gif

我知道如何用

做到这一点
$(gif).show(); 
$.post( action, data, function(result) { $(gif).hide(); } );

// using ajaxStart and ajaxStop is a better way too

但是,我不知道怎么做而不使用帖子,我试过

$(gif).show();
doAction();    // No post...
$(gif).hide();

问题是,当doAction函数正在运行时,$(gif)不可见.... 我尝试了超时,但问题是在取决于之前或之后结束doAction()持续时间......

2 个答案:

答案 0 :(得分:1)

如果doAction()所做的是同步的话,这应该有效。

如果不是,则需要在回调中调用hide方法,该回调在操作(无论是什么)结束时触发。

答案 1 :(得分:0)

$(gif).hide()可以在您的doaction执行某些ajax调用(搜索)时触发,这需要时间。

在函数(结果)之后放置隐藏函数的目的是只在你的ajax调用返回结果时调用它。

如果您不想依赖ajax complete来显示或隐藏您的加载器,您可以将结果放在覆盖加载器的DIV层上。 (更高的z指数)