Мой текущий проект веб-приложения интенсивно использует ajax-вызовы. Большинство из них быстрые и реагируют практически сразу. Таким образом, показывать загрузчик ajax все время не обязательно. Но я хочу показать загрузчик ajax, когда вызовы ajax занимают больше 250 мс (или около того). В противном случае пользователи могут запутаться и продолжать нажимать на ссылки снова и снова. :)
Есть идеи, как этого добиться с помощью jQuery?
У меня нет предыдущего опыта работы с jQuery, но чтобы добиться простой задержки выполнения некоторого кода, просто используйте это:
setTimeout ("foo()", 250);
где foo () - функция, отвечающая за загрузку ... индикация.
Можете ли вы использовать таймер Javascript для запуска через 250 мс для отображения сообщения «загрузка ...»?
Активируйте это на ajaxSend () и отключите его на ajaxComplete () (и очистите сообщение 'loading ...', если требуется), и поэтому реализация должна прозрачно для того, что Ajax вызывает у вас.
var activity = false; $("#loadingIndicator").ajaxStart(function() { activity = true; window.setTimeout(function() { if (activity) { //alert('activity'); $("#loadingIndicator").show(); } } , 700); }); $("#loadingIndicator").ajaxStop(function() { activity = false; $(this).hide(); });