Самый простой
var page = 2;
$('.elements').data('loading', false);
$('.more-button').on('click', function() {
if (!$('.elements').data('loading') && (!$('.elements').data('last_load_page') || page != $('.elements').data('last_load_page'))) {
$('.elements').data('loading', true);
$('<div/>').load('/catalog/?page=' + (page++) + ' .elements .element', function() {
$('.elements').append($(this).find('.element'));
$('.elements').data('last_load_page', page);
$('.elements').data('loading', false);
});
}
});
Не выключать обычный пагинатор, его очень любят СЕО, и используя его уже догружать в общий список элементы. Не изящно, но работает.