2012-12-29 26 views
8

Tìm kiếm giải pháp cho sự cố do bộ dữ liệu lớn buộc Ember khóa trình duyệt trong khi nó cố gắng xử lý dữ liệu.Ember nghẹt thở khi gặp phải các bộ dữ liệu lớn

Để phân trang, tôi đang sử dụng tiện ích pagination mixin của tchak để phân trang khoảng 13.000 đối tượng đang được tải từ API phụ trợ.

Các đối tượng dữ liệu Ember chứa ID, một thuộc tính văn bản và một số thuộc tính số.

Vấn đề là phải mất gần một phút trước khi trình duyệt xử lý xong dữ liệu, làm cho trình duyệt không sử dụng được trong thời gian chờ đợi. Firefox thậm chí còn đi xa đến mức đưa ra cảnh báo rằng một tập lệnh đang sử dụng hết tất cả tài nguyên trình duyệt và cho rằng tập lệnh đó đã bị chấm dứt.

Tôi đã viết mixin phân trang của riêng mình yêu cầu các đối tượng theo phạm vi, tức là các mục 10-25 và hoạt động thường tốt ngoại trừ một giới hạn nghiêm trọng: sắp xếp. Để sắp xếp dữ liệu, tôi cần phải thực hiện các yêu cầu bổ sung cho chương trình phụ trợ và tải lại các đối tượng ngay cả khi một số đối tượng đã được tải.

Tôi rất muốn có thể tải tất cả nội dung trả trước để đơn giản hóa quá trình sắp xếp mà không cần thực hiện thêm yêu cầu đối với API phụ trợ. Tôi đang tìm kiếm hướng dẫn về cách giải quyết vấn đề này nhưng tôi mở ra một cách tiếp cận hoàn toàn thay thế.

Nếu không có gì khác, có thể giảm được dấu chân tài nguyên Ember đặt trên trình duyệt khi nó cố tải tất cả các đối tượng 13k vào ArrayController không?


Tôi đang sử dụng Ember 1.0.0-pre2 với dữ liệu Ember mới nhất (hiện tại tại Bản sửa đổi 10).

Trên chương trình phụ trợ là Rails 3.2.8.


Cập nhật Tôi tránh né vấn đề bằng cách nạp dữ liệu vào một tài sản khác hơn content ArrayController. Điều này mang lại thời gian tải xuống từ hơn một phút đến chỉ một vài giây. Sau đó tôi cắt số lượng mục được yêu cầu và tải các mục đó vào nội dung. Điều này làm việc tốt cho bất kỳ số lượng các mặt hàng, với chi phí không thể dễ dàng sắp xếp dữ liệu.

+0

Bạn có thể chia sẻ một số mã về giải pháp này không? Tôi đang đối mặt với cùng một vấn đề và nó sẽ là một trợ giúp lớn. –

Trả lời

5

Tôi đề nghị bạn hãy xem Ember Table. Bản demo cho thấy một bảng với 500 000 bản ghi và hoạt động rất nhanh. Đào xung quanh mã nguồn có thể hữu ích.

+1

+1 cho điều này. Vấn đề rất có thể là bạn đang cố gắng hiển thị tất cả chúng cùng một lúc. – nicholaides

+0

Tôi chỉ hiển thị 15-20 mục, nhưng nếu bạn thấy cập nhật của tôi ở trên, vấn đề dường như có liên quan đến cách ArrayController xử lý nội dung. – Marco

0

Bạn không thể truy vấn chế độ xem từ db của bạn để xử lý việc sắp xếp? Vượt qua các điều kiện sắp xếp trong chuỗi truy vấn? SortBy = name & sortAsc = true

+0

Và tôi vừa trả lời câu hỏi của riêng tôi về GET một loạt dữ liệu. Nói cho một tháng hoặc một quý tài chính –

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