> как сделать так что бы пока отправляется запров, второй запрос не отправлялся
Самое простое, это добавить флаг, то есть условие на запрос не только позиция прокрутки документа, но и разрешение этого флага:
var perm = 1; //изначально запрос разрешен
//перед запросом сбрасываем флаг
perm ^= 1;
//получили ответ сервера, обработали, разрешаем следующий запрос
perm ^= 1;
То что элементы закончились клиент должен знать, значит тоже следить за этим надо. Можно при первом запросе выдать общее его количество за минусом порции, а при каждом вычитать эту порцию. Либо последний запрос вернул пустой результат, запомнить его.