jquery ajax indicator, automatic, intelligent
Very nice ajax indicator, displays only for ajax action which take longe than 500ms, and show up fully automatic for all ajax actions.
Layout / Template
... <!-- Loading indicator, show for all ajax action longer than 500ms --> <div class="loading-indicator"></div> <script> $body = $("body"); var loadingTimeout; $(document).bind({ ajaxStart: function() { loadingTimeout = setTimeout(function() { $body.addClass("loading"); }, 500); }, ajaxStop: function() { clearTimeout(loadingTimeout); $body.removeClass("loading"); } }); </script> </body> </html>
CSS
/* loading indicator */ .loading-indicator { display: none; position: fixed; z-index: 1000; top: 0; left: 0; height: 100%; width: 100%; background: rgba( 255, 255, 255, .5 ) url('/images/ajax-loading.gif') 50% 50% no-repeat; } body.loading .loading-indicator { display: block; }