Вы можете реализовать простое разбиение на страницы в функции xmlParser. Попробуйте что-то вроде этого:
function xmlParser(xml, page, perpage){
// dom object containing xml response
var xmlDOM = $(xml);
// From what index to start showing
var start = (page - 1) * perpage;
// Find elements starting from start point using .gt() up to end point using .lt()
xmlDOM.find("book").gt(start - 1).lt(perpage).each(function() {
var $node = $(this);
// Do your stuff
});
}
// Usage
xmlParser(xml, 1, 20);
Это будет обрабатывать только указанное количество элементов на данной странице. Обратите внимание, что этот пример не учитывает минимальное и максимальное количество страниц и т. Д., Но должен дать вам кое-что для работы.
Но, как отметил Дэвид В. в комментариях, вам действительно нужно просто получить правильное количество результатов с сервера, а не анализировать их в JS. В настоящее время вы загружаете все 1500 записей, даже если пользователь хочет только первые 20.