2011-01-04 33 views
5

Công nghệ này có dành cho các mẫu nhỏ hoặc có thể được sử dụng để hiển thị các tập dữ liệu lớn không? Chẳng hạn như bảng với 1000 hàng và 20 cột?Hiệu suất mẫu Jquery

Quy mô hiệu suất cho các trường hợp như thế nào? Cách lý tưởng và sạch sẽ để hiển thị dữ liệu sẽ là nạp dữ liệu JSONified được trả về từ Dịch vụ Web vào Mẫu JQuery. Nó trông kiểu dáng đẹp về lý thuyết nhưng nó bay trong thực tế cho các tập dữ liệu lớn?

Trả lời

5

Phụ thuộc rất nhiều vào trình duyệt thực hiện hiển thị. IE6 có thể được khá chậm (mặc dù chuyển 1.000 hàng lớn đánh dấu HTML và tiêm mà vào tài liệu sẽ không được nhanh chóng, hoặc).

Đây là a jsperf benchmark that generates 1,000 rows of 10 columns and renders it. Tôi lấy trung bình 200-250ms để hiển thị 1.000 hàng trong Chrome 9.

Câu hỏi quan trọng hơn thực sự là: Tại sao trên thế giới bạn hiển thị 1.000 hàng cùng một lúc? Luôn có những lựa chọn thay thế UX tốt hơn thế.

+0

Tôi sẽ hiển thị khoảng 600 thực tế. Tôi được yêu cầu hiển thị tất cả các hàng cùng một lúc mà không cần phân trang cụ thể. Ai đó trên SO đề nghị tôi làm một cái gì đó giống như bộ nhớ cache dữ liệu nhận được từ các dịch vụ web và hiển thị nó trong khối khi người dùng cuộn. Tôi khá mới với Jquery và chưa thấy nhiều ví dụ minh họa điều đó. – sarsnake

+0

Bạn thậm chí không nhất thiết cần sự phức tạp của việc cập nhật khi người dùng cuộn. Chỉ cần hiển thị bộ dữ liệu hiển thị trước và sau đó bắt đầu hiển thị ngay lập tức và thêm phần còn lại của dữ liệu của bạn vào ~ 100 khối hàng. Thậm chí tốt hơn, bạn có thể bắt đầu bằng cách chỉ yêu cầu tập hợp các hàng hiển thị đầu tiên từ dịch vụ web, sau đó ngay lập tức yêu cầu phần còn lại sau khi hiển thị bit đầu tiên. Điều đó sẽ tăng tốc độ tổng thời gian cho đến khi một cái gì đó có thể nhìn thấy quá. Hạn chế chính của việc đó là nó sẽ liên tục ảnh hưởng đến kích thước của thanh cuộn khi nhiều hàng được thêm vào. –

+0

Cảm ơn Dave, nhưng tôi không chắc nó sẽ hoạt động như thế nào, không phải là một luồng đơn Javascript? Sự chậm trễ cho tôi xảy ra trên vòng lặp thông qua dữ liệu JSON (từ dịch vụ web) bên, chứ không phải bên dịch vụ web ... vậy tại sao tôi lại gọi dịch vụ web nhiều lần? Không phải cách của bạn sẽ khóa trình duyệt? – sarsnake