2010-06-18 25 views
7

Tôi đang sử dụng plugin jQuery được gọi là Tablesorter để thực hiện sắp xếp phía máy khách của bảng nhật ký trong một trong các ứng dụng của tôi. Tôi cũng đang sử dụng add-in tablepager.phân loại/phân trang bảng javascript (phía máy khách). Làm thế nào lớn là quá lớn?

Tôi thực sự thích sự đáp ứng mà phân loại và phân trang phía máy khách mang đến cho bên. Tôi cũng thích cách bạn không phải nhấn máy chủ web hoặc cơ sở dữ liệu nhiều lần.

Tuy nhiên tôi có thể thấy rằng, trong thời gian, nhật ký tôi hiển thị có thể phát triển khá lớn. Tôi chắc rằng có một điểm mà phân trang và phân loại phía máy khách sẽ không thực tế. Những gì điểm kỹ thuật này sẽ bắt đầu sụp đổ dưới trọng lượng riêng của nó? 500 bản ghi? 2000 hồ sơ? 10.000 bản ghi?

EDIT: Tóm lại, bạn sẽ sử dụng tiêu chí nào để xác định xem bạn sẽ sử dụng phân loại/phân trang phía máy khách như trái ngược với phân trang phía máy chủ? Liệu kích thước của yếu tố thiết lập kết quả mong đợi vào quyết định của bạn? Đâu là điểm bùng phát?

+0

Ngoài việc này, tùy thuộc vào kích thước của bản ghi bạn sẽ phải chuyển nhiều dữ liệu cho khách hàng, mỗi khi bảng được yêu cầu; điều này có thể tốn rất nhiều băng thông và tùy thuộc vào tốc độ kết nối, thời gian. –

Trả lời

3

Tuy nhiên tôi có thể thấy rằng, trong thời gian, nhật ký tôi đang hiển thị có thể phát triển khá lớn. Tôi chắc chắn có một điểm nơi phân trang và phân loại phía máy khách sẽ không thực tế. Điểm kỹ thuật này sẽ bắt đầu sụp đổ dưới trọng lượng riêng của nó? 500 bản ghi? 2000 bản ghi? 10.000 bản ghi?

Điều này thực sự phụ thuộc vào rất nhiều thứ khác nhau như số cột kích thước bảng và trình duyệt và phiên bản mà người đó đang sử dụng.Tôi thường có thể sắp xếp tới 1000 hồ sơ trước khi nhìn thấy một vấn đề thực sự. Nếu bạn bắt đầu tiếp cận con số này, tôi chắc chắn sẽ bắt đầu xem xét phân loại phía máy chủ. Với AJAX, phân loại phía máy chủ có thể khá hiệu quả và có trải nghiệm người dùng tốt.

Cách tốt nhất là xem xét tình huống cụ thể của bạn là thử xem và xem. Trình duyệt mặc dù không thực sự được thiết kế để xử lý số lượng dữ liệu thực sự lớn như vậy vẫn có thể xử lý nó. Kinh nghiệm của người dùng sẽ rất khốc liệt, nhưng số lượng bản ghi nó có thể xử lý là khá cao.

+0

Thật vậy, nó (gần như) hoàn toàn phụ thuộc vào kích thước bộ nhớ của máy khách và tốc độ của phần cứng (và thậm chí là tốc độ của công cụ JavaScript của trình duyệt). –

3

Kỹ thuật này có thể sẽ sụp đổ khi trình duyệt hoặc máy chủ lưu trữ của khách hàng không thể thực hiện được.

Sử dụng phân trang phía máy chủ để ngăn chặn điều này.

Lần đầu tiên tôi xem xét lượng dữ liệu tôi gửi cho khách hàng, điều này sẽ gây ra hệ số thời gian tải.

Giả sử mỗi hàng của bảng là 200 byte và tôi đang gửi 10000 hàng cho ứng dụng khách (cho phép phân loại và phân trang khách hàng), tôi gửi 200 * 10000 = 2.000.000 byte, còn 2 MB. Điều này sẽ mất trình duyệt một thời gian để tải nó từ máy chủ, sau đó một thời gian cho các plugin sắp xếp để sắp xếp tất cả mọi thứ, sau đó phân trang một số thời gian để trang nó.

Thực tế, tải máy chủ của bạn sẽ tăng lên khi cần gửi TẤT CẢ các hàng cho khách hàng.

Thông thường với quá nhiều dữ liệu và lặp lại cho Javascript để xử lý, trình duyệt (Firefox hoặc tương tự) sẽ khóa và trông như thể nó đang gặp sự cố.

Nếu bạn sử dụng phân loại bên máy chủ + phân trang, khách hàng sẽ thấy thông tin chính xác và cập nhật. Cũng nói rằng bạn có cùng 10000 hàng, mỗi 200 byte. Bạn có 20 hàng trên mỗi trang. Bạn chỉ gửi 20 * 200 = 4000 byte, là 4 KB, tương đối nhỏ và có thể được xử lý bởi trình duyệt/máy chủ.

+0

Tôi đang tìm một câu trả lời cho tôi thêm một chút hướng dẫn. Tôi sẽ chỉnh sửa câu hỏi của mình để làm rõ điều đó. Đã cập nhật – Aheho

+0

. cảm ơn để biết thêm thông tin; đó là những gì chúng tôi cần. – mauris

3

Một vài trăm có thể không sao, tùy thuộc vào số cột. Điều này chắc chắn nhất sẽ bị hỏng khi bạn xử lý dữ liệu theo thứ tự 10^3 (hàng nghìn).

Đây là những phát hiện thực nghiệm của tôi trên các trình duyệt khác nhau, nhưng tôi thường sử dụng phần cứng mạnh mẽ. Tôi sẽ giới hạn dữ liệu của bạn thành hàng trăm.

Các vấn đề liên quan