Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 8 của 8
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    Làm cách nào để phân trang bằng Jquey

    Chào anh em! mình không thấy 4rum mình có Box nào dành cho HTML hết nên đành post vào đây vậy!

    Chuyện là thế này. Mình đang làm chức năng phân trang cho TABLE HTML (tức là dữ liệu đã trả về dạng HTML hết rồi - <Tất cả dữ liệu>)

    Giờ mình đang cần phân trang cho table đó. Thì mình cũng có đọc vài tài liệu chỉ cách sử dụng Jquery. thì nói chung là cũng được tham khảo bên dưới

    http://jsfiddle.net/Xugej/1445/
    Vấn đề của mình đây là nếu như mà nhiều trang thì nó sẽ hiển thị tất cả. Đâm ra là cái danh sách số trang nó bị quá dài nên không hay cho mấy.

    Trên mạng cũng có 1 số Plugin như Datatable nhưng làm cách đó hok hợp với Style Table của mình (mình chia nhóm trong đó cũng nhiều nên dùng không được với Plugin đó)

    Vậy bạn nào có cách nào hiển thị 1 phần của số page không (giống như phân trang của 4rum mình nè ...)

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trước khi bạn muốn làm phân trang, bạn cần phải hiểu server side và client side.

    Example của bạn đưa là Client Side, còn trong diễn đàn này là Server Side paging. Cho nên bạn phải biết mình nên dùng cái nào.

  3. #3
    Ngày tham gia
    Sep 2015
    Đang ở
    Số 60 Thái Hà, Đống Đa, Hà Nội
    Bài viết
    0
    9 xác là em đang phân trang ở client (Client Side)
    Chắc anh hiểu lầm ý em. Ý em là phân trang sao cho cách hiển thị nếu nhiều trang thì nó sẽ hiển thị 3 trang đầu và 3 trang cuối, nếu click trang thứ 3 thì sẽ hiển thị tiếp 3 trang kế, giống như 4rum mình

  4. #4
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Phân trang = jquerry thì mình không biết. Cũng không khuyến khích bạn nên tìm hiểu. Vì việc load toàn bộ dữ liệu ra là không cần thiết.
    Nếu bạn làm MVC thì có thể tham khảo demo sau: http://mvcpaging.apphb.com/
    Nguồn: https://www.nuget.org/packages/MVC4.Paging/

  5. #5
    Trích dẫn Gửi bởi family2806
    Đúng như bạn nói, cách nào cũng có cái hay cái dở của nó cả. Nhưng mình nghĩ dùng phân trang phía server vẫn hơn.
    Dùng ajax để load lại cũng không tốn mấy thời gian.
    Mà như bạn nói, để giảm thiểu thời gian build lại của server thì bạn có thể lưu ở session.

    Mà nếu trong lúc đang xem dữ liệu của trang (dữ liệu trên db bị thay đổi). Nếu không load lại? Làm sao biết?
    Như bạn nói lưu session vậy dữ liệu thay đổi mình vấn phải lên server build lại để có đc dữ liệu mới.

    Nếu vậy tại sao ko trả về 1 JSON rồi ở client làm gì làm, nếu muốn có dữ liệu mới thì cứ nhấn nút tìm kiếm lại!

    Lưu session nó hay chỉ khi người dùng đã xử lý trang và nhấn ra trang khác, sau đó vào lại thì tốc độ nhanh hơn! thực sự mình có lưu session cho trường hợp này mà!

    Vấn đề của mình là tránh việc load trang khi nhấn sang trang ko mất thời gian (trong 1 phiên làm việc). Nếu người dùng muốn có dữ liệu mới thì cứ nhấn tìm kiếm

  6. #6
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi family2806
    Phân trang = jquerry thì mình không biết. Cũng không khuyến khích bạn nên tìm hiểu. Vì việc load toàn bộ dữ liệu ra là không cần thiết.
    Nếu bạn làm MVC thì có thể tham khảo demo sau: http://mvcpaging.apphb.com/
    Nguồn: https://www.nuget.org/packages/MVC4.Paging/
    Cái nào nó cũng có cái hay cái dỡ của nó chứ bạn, sao lại "không khuyến khích"

    Theo ý kiến của mình làm theo cách này mình phải hy sinh khoản thời gian lúc đầu load hết dữ liệu về (mình kiểm tra tải về hơn 2000 dòng cũng rất nhanh), sau đó mình phân trang bằng jquery nhằm giảm thiểu thời gian hiển thị ra màn hình cho người dùng. Việc sau này mình chuyển trang qua lại cũng sẽ nhanh hơn nhiều.

    Nhưng nếu như sử dụng cách phân trang theo kiểu của bạn thì nó chỉ nhanh khoản thời gian đầu, nếu như mình muốn chuyển từ trang từ trang, vậy nó phải lên server lấy về rồi build lại! Bạn nghỉ cái nào sẽ tốt hơn?

  7. #7
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi vnlevanduoc
    Cái nào nó cũng có cái hay cái dỡ của nó chứ bạn, sao lại "không khuyến khích"

    Theo ý kiến của mình làm theo cách này mình phải hy sinh khoản thời gian lúc đầu load hết dữ liệu về (mình kiểm tra tải về hơn 2000 dòng cũng rất nhanh), sau đó mình phân trang bằng jquery nhằm giảm thiểu thời gian hiển thị ra màn hình cho người dùng. Việc sau này mình chuyển trang qua lại cũng sẽ nhanh hơn nhiều.

    Nhưng nếu như sử dụng cách phân trang theo kiểu của bạn thì nó chỉ nhanh khoản thời gian đầu, nếu như mình muốn chuyển từ trang từ trang, vậy nó phải lên server lấy về rồi build lại! Bạn nghỉ cái nào sẽ tốt hơn?
    Đúng như bạn nói, cách nào cũng có cái hay cái dở của nó cả. Nhưng mình nghĩ dùng phân trang phía server vẫn hơn.
    Dùng ajax để load lại cũng không tốn mấy thời gian.
    Mà như bạn nói, để giảm thiểu thời gian build lại của server thì bạn có thể lưu ở session.

    Mà nếu trong lúc đang xem dữ liệu của trang (dữ liệu trên db bị thay đổi). Nếu không load lại? Làm sao biết?

  8. #8
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    http://www.sitepoint.com/10-jquery-pagination-plugins/
    http://www.jqueryrain.com/2012/04/best-ajax-jquery-pagination-plugin-tutorial-with-example-demo/
    Thích cái nào thì tự chọn 1 cái. ko thích thì tự viết. phân trang viết củng dể mà
    Còn dùng ajax get dữ liệu về để xử lý thì lúc load hết 1 lần mạng nhanh thì dc. mạng chậm sẻ làm khách hàng chờ lâu. Được cái có ưu điểm lấy hết xong xử lý toàn client nên nhìn rất nhanh. Trong 1 số dự án cần xử lý client thì nó là ưu điểm. angularjs ra đời chuyên để xử lý client.
    - Phân trang ở server với linq ưu điểm nhanh tuơng tác, xử lý theo phuơng pháp chia để trị. ko gom cục. Nhưng dữ liệu change mới ở server trừ khi xử lý realTime còn ko thì củng cứ load lên rồi lưu lại ViewState thôi. dữ liệu mới vẩn khi gọi sql nó mới load.
    - Nói chung cái nào củng có ưu, khuyết của nó. ko cần tranh luận mà thấy cái nào phù hợp với vấn đề của mình thì dùng

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •