01/10/2018, 11:39

Xử lý biến trang hiện hành ở server hay ở client

Mình có demo phân trang bằng node js + angularjs

code thế này

Kết quả thế này :

Mọi thứ xử lý điều ok:

  1. Bấm nút next thì var page++
    2.Bấm nút pre thì var page–
    3.Nếu page=1 thì nút pre disable
    4.Nếu page = page_max thì nút next disable

Có một điều problem là khi bấm nút del trong trường hợp số record = 1 thì ta phải xử lý page variable thế nào ? tại server or client ?

Dark.Hades viết 13:41 ngày 01/10/2018

page_max

Xử lí ở server để có biến này, client request để lấy giá trị là được rồi.

Thuc Nguyen Tan viết 13:54 ngày 01/10/2018

Mình kiểm tra số record hiện hành, nếu = 1 thì tự giảm page-- rồi gửi về server không được hả bạn?, làm thế thì không cần nhận lại giá trị trang hiện hành từ server

Hung viết 13:40 ngày 01/10/2018

Delete khi page có 1 record thì: 1. Thành page 0 record 2. Chuyển sang page trước

Pagination nên xử lý Frontend, Backend chỉ cung cấp 1 API duy nhất có 2 query parameter: offset và limit giống như offset limit trong SQL. Lý do để reuse lại API khi deploy trên mobile, hay build lại Frontend kiểu loadmore giống diễn đàn

Thuc Nguyen Tan viết 13:42 ngày 01/10/2018

ý bạn là xử lý tại client?. Nếu vậy nhỡ del không thành công?

Hung viết 13:45 ngày 01/10/2018

Delete là gửi DELETE request lên server, kết quả trả về HTTP response với mã 20x, bị lỗi thì trả về Mã 40x. Danh sách Mã thì google thêm.

Thuc Nguyen Tan viết 13:55 ngày 01/10/2018

Okay client is better and simple, thank you…

    $scope.on_del = function (id) {
        $scope.del(id).then(function (res) {
            var kq = res.data.msg;
            if (kq == 1) {
                if ($scope.ds.length == 1) {
                    $scope.page--;
                }
                $scope.refresh_page();
            }
        })
    }
Bài liên quan
0