在AJAX请求期间显示微调器?

展示微调器的最佳方法是什么?

我准备了一个div(id =“spinner”),在加载过程中应该是可见的。

你使用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 Alex

我在我的rails应用程序中使用了它。 这对我有用:

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