Tôi đang cố gắng tìm ra cách tốt nhất để sử dụng KnockoutJS và tôi cần lời khuyên của bạn.JS loại bỏ và các mô hình lớn
Mô hình chế độ xem của tôi chứa một bộ "tài liệu", mỗi tài liệu có một bộ "giá trị". Mỗi "tài liệu" được trả lại như một bảng riêng biệt bằng cách sử dụng mẫu sau:
<div data-bind="foreach: Documents">
<table data-bind="foreach: Values">
<tr data-bind="foreach: $data">
<td data-bind="attr: {colspan: Colspan}">
<label data-bind="text: Label"></label>
<br />
<span data-bind="html: Value"></span>
</td>
</tr>
</table>
</div>
Tất cả mọi thứ hoạt động tốt trừ khi xem các mô hình là lớn.
Ví dụ: nếu kích thước của mô hình khung là khoảng 1 megabyte (và chứa 80 tài liệu với 60 giá trị mỗi lần) thì việc hiển thị mất hơn hai phút trên máy của tôi.
Tôi tự hỏi nếu có một cách để cải thiện đáng kể hiệu suất ... Hoặc nó sẽ nhanh hơn để cung cấp cho lên trên Knockout và chỉ xây dựng html trên phía máy chủ và chỉ cần đẩy nó vào trình duyệt ...
Hiển thị "chỉ" mô hình xem 300kb mất gần 30 giây.
"Tài liệu" được xác định bởi người dùng, vì vậy thậm chí có> 2 megabyte kịch bản (Tôi không biết tại sao họ làm điều đó).
Có ai có kinh nghiệm với các mô hình chế độ xem lớn trong JavaScript không?
Cảm ơn. Vì vậy, chơi với cách xem mô hình của tôi được cấu trúc sẽ không thực sự giúp đỡ theo câu trả lời của bạn? Tôi có nghĩa là, nếu tôi làm hai giai đoạn bindings: ràng buộc một bảng trống đầu tiên và sau đó ràng buộc rằng bảng để cư nó với dữ liệu, vv? –
Cũng từ kinh nghiệm của bạn, nó có ý nghĩa để thử các khuôn khổ MVVM khác hoặc các công cụ mẫu (như xương sống, jQuery.tmpl, vv) hoặc hiệu suất đang làm được khá nhiều giống nhau không? Nói cách khác, nó là một vấn đề chung JavaScript/Browser/Dom hoặc là nó chỉ Knockout được làm chậm? Tất nhiên tôi sẽ thử ít nhất một khung khác, nhưng cố gắng tất cả chúng mất rất nhiều thời gian vì vậy đó là lý do tại sao tôi yêu cầu một lời khuyên từ những người có kinh nghiệm :) –
@Alexey Raga - Bất cứ lúc nào bạn ràng buộc về phía khách hàng hiệu suất của bạn sẽ bị giới hạn bởi trình duyệt. Điều gì xảy ra nếu ai đó đang sử dụng IE8 (công cụ JavaScript chậm) và mô hình rất lớn, sẽ mất vài phút để hiển thị nó. Bạn đã không thực sự đưa ra bất kỳ giới hạn cho những gì bạn muốn xem xét "cải thiện đáng kể hiệu suất" nếu jQuery.tmpl là 50% nhanh hơn sẽ đủ cho bạn? ... –