jQuery.ajax проверяет, есть ли уже другой xhr - PullRequest
0 голосов
/ 18 июня 2010

У меня есть страница, когда, если пользователь находится в нижней части страницы, загружает следующую страницу.

Я недавно переключил ее на jQuery и теперь использую функцию jQuery.ajax(), чтобы получитьданные.Тем не менее, теперь я не могу проверить, загружается ли xhr, заставляя страницу загружаться несколько раз, когда пользователь находится рядом с ним.

Мой слушатель:

$(document).scroll(function () {
            if(/* scrollbar is near bottom */)
            loadxhr(dat++); //function that calls jQuery.ajax()
        }
});

По сути, вы можете отслеживатьготовое состояние вызова в глобальной области видимости?

Ответы [ 2 ]

1 голос
/ 18 июня 2010

возможно проверить .ajaxStart () и .ajaxStop () для событий, которые сообщат вам, когда звонки происходят?

1 голос
/ 18 июня 2010

Я бы просто имел переменную (вне функции)

var scrolling = 0;

Когда придет время вызвать функцию ajax, проверьте, равна ли прокрутка 0, и в противном случае ничего не делайте; если он равен, установите его равным 1, вызовите функцию ajax и установите ее обратно в 0 в обратном вызове последнего.

Вроде как эквивалент «блокировки» в вытесняющих многопоточных системах, за исключением того, что вам не нужна блокировка (хорошо, потому что в javascript их нет ;-), потому что ваш поток управления только прерывается при вызове функции ajax, а не в произвольных местах кода, как в вытесняющей многопоточности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...