2009-10-02 42 views
5

展示微调器的最佳方式是什么?在AJAX请求期间显示微调框?

我已经准备好了一个div(id =“spinner”),它应该在加载时可见。

+1

我可以建议重命名为“在AJAX请求期间显示微调吗?” – 2009-10-02 11:50:33

回答

8

你使用jQuery吗?

如果是这样,你可以使用:

ajaxStart & ajaxStop:http://docs.jquery.com/Ajax

例如:

$(function(){ 

    // hide it first 
    $("#spinner").hide(); 

    // when an ajax request starts, show spinner 
    $.ajaxStart(function(){ 
     $("#spinner").show(); 
    }); 

    // when an ajax request complets, hide spinner  
    $.ajaxStop(function(){ 
     $("#spinner").hide(); 
    }); 
}); 

您可以微调一点与请求计数器的递增和递减的情况下,你有很多同时请求。

如果您不使用jQuery,请查看jQuery源代码,其中的ajaxStart事件实际上是在普通的旧javascript中注册的。

HTH 亚历

+0

我正在使用原型。 – brainfck 2009-10-02 11:55:50

+0

好吧不是那么容易,但检查此页http://www.prototypejs.org/api/ajax/request和事件: - onCreate - onComplete – 2009-10-02 11:58:09

+2

谢谢,我已经更改为jQuery。原型吸盘:) – brainfck 2009-10-02 12:24:27

1
$().ajaxSend(function(r, s) { 
    $("#spinner").show(); 
}); 

$().ajaxStop(function(r, s) { 
    $("#spinner").fadeOut("fast"); 
}); 
2

我在Rails应用程序中使用此。这对我有效:

$(document).ajaxSend(function(r, s) { 
$("#spinner").show();}); 


$(document).ajaxStop(function(r, s) { 
$("#spinner").fadeOut("fast");}); 
+0

我不得不使用$(文档),空的$()或只是$没有括号不起作用。 – Blizwire 2015-09-17 05:24:36