Показывать индикатор загрузки ajax не сразу, а после задержки - PullRequest
5 голосов
/ 12 апреля 2009

Мой текущий проект веб-приложения интенсивно использует ajax-вызовы. Большинство из них быстрые и реагируют практически сразу. Таким образом, показывать загрузчик ajax все время не обязательно. Но я хочу показать загрузчик ajax, когда вызовы ajax занимают больше 250 мс (или около того). В противном случае пользователи могут запутаться и продолжать нажимать на ссылки снова и снова. :)

Есть идеи, как этого добиться с помощью jQuery?

Ответы [ 3 ]

4 голосов
/ 12 апреля 2009

У меня нет предыдущего опыта работы с jQuery, но чтобы добиться простой задержки выполнения некоторого кода, просто используйте это:

setTimeout ("foo()", 250);

где foo () - функция, отвечающая за загрузку ... индикация.

2 голосов
/ 12 апреля 2009

Можете ли вы использовать таймер Javascript для запуска через 250 мс для отображения сообщения «загрузка ...»?

Активируйте это на ajaxSend () и отключите его на ajaxComplete () (и очистите сообщение 'loading ...', если требуется), и поэтому реализация должна прозрачно для того, что Ajax вызывает у вас.

1 голос
/ 16 февраля 2012
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();
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...