Pagination with Ajax

Trong 1 trang web của 1 (giả dụ trang /home) có 1 trường cần phân trang. E có viết đoạn js dùng ajax chỉ phân trang cái trường đó và khi click next hay preview thì không load lại trang mà chỉ load cái chỗ phân trang thôi.

$(document).on('click','.pagination a', function(event){
    event.preventDefault();
    var page = $(this).attr('href').split('page=')[1];
    getPosts(page);
});

function getPosts(page)
{
    $.ajax({
        type: "GET",
        url: '?page='+ page
    })
        .success(function(data) {
            $('body').html(data);
        });
}

1 2 lần đầu click (next hoăc preview) nó load rất mượt nhưng khi click vài lần thì có giấu hiệu bị đợ và nó load rất chậm. lâu dần nó chết luôn serve. Có bác nào biết tại sao hoặc có cách làm khác không ạ? E cảm ơn

nhiều khả năng là code server cùi nên thế thôi. Chưa chắc đã là lỗi ở giao diện của bạn

Khi phân trang thì cần request đến DB để lấy dữ liệu lên.
Bạn nên làm thêm phần loading để tránh user click liên tục, request làm server quá tải

cũng không hẳn do serve bác ạ. Cùng 1 đoạn js mà chỗ thì chạy ngon lành nhưng chỗ thì khi click 1 vài lần sẽ dẫn đến tình trạng đơ do nó load lại trang liên tục (nó load theo kiểu cấp số nhân. lần 1 thì load 1 lần. lần 2 thì load 2 lần, lần 3 load 4, 4 load 8…)

Bác chỉ e với được không ạ?

Vậy bạn xem lại coi ajax có send request nhiều lần không? Nếu có thì thêm return false; để nó không send nữa

Bạn đưa có 1 mẩu code bé xíu ấy lên thì mn chỉ có thể đoán mà thôi

Ok. Cảm ơn bác. E tìm cách fix được rồi

Code này là THÊM event handler :smiley:

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?