5 Stimmen

Knockout JS und große Modelle

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?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X