Ich versuche herauszufinden, wie man KnockoutJS am besten einsetzt und brauche Ihren Rat.
Mein Ansichtsmodell enthält eine Reihe von "Dokumenten", von denen jedes eine Reihe von "Werten" hat. Jedes "Dokument" wird als separate Tabelle mit der folgenden Vorlage gerendert:
<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>
Alles funktioniert gut, außer wenn die Ansichtsmodelle groß sind.
Wenn zum Beispiel die Größe eines Ansichtsmodells etwa 1 Megabyte beträgt (und 80 Dokumente mit jeweils 60 Werten enthält), dauert das Rendering auf meinem Rechner mehr als zwei Minuten.
Ich frage mich, ob es eine Möglichkeit gibt, die Leistung deutlich zu verbessern... Oder wird es schneller sein, auf Knockout aufzugeben und nur html auf einer Server-Seite zu bauen und nur schieben Sie es an den Browser...
Das Rendern eines "nur" 300kb großen Ansichtsmodells dauert fast 30 Sekunden.
Die "Dokumente" werden von den Benutzern definiert, so dass es sogar Szenarien mit mehr als 2 Megabyte gibt (ich weiß nicht, warum sie das tun).
Hat jemand Erfahrung mit großen Ansichtsmodellen in JavaScript?