Ich überarbeite einen vorhandenen Code, um Knockout zu verwenden. Der betreffende Code ist ein Kalender und wird dynamisch so erstellt, wie der Benutzer die vorherigen und nachfolgenden Monate oder Wochen durchsucht.Korrektes mehrfaches Anwenden von Bindungen
Die Art und Weise, wie der Kalender funktioniert, wenn der Benutzer die nächste oder vorherige Taste drückt, wird gelöscht und dann neu erstellt.
Erste Knockout-Arbeit war einfach, nur eine Frage der Anwendung der richtigen data-bind
Argumente auf die Zelle und dann ko.applyBindings
anrufen.
Meine Sorge ist, dass, weil der Code die DOM-Elemente zerstört, an die Knockout gebunden ist, dass es Speicher leckt. Ist dies der Fall, und wenn ja, was sollte der Kalender tun, bevor er den Container mit den Bindungen löscht?
Haben Sie Ihren Browser [Entwickler-Tools] verwendet (https://developers.google.com/web/tools/chrome-devtools/memory-problems/) Ihre Annahmen zu überprüfen? Wenn Sie Knockout zum Konstruieren Ihres DOM verwenden, sollten Sie es im Allgemeinen nicht berühren, es sei denn, es handelt sich um einen Bindungshandler. Verwenden Sie 'with',' if', 'template' und' foreach', um Teile Ihrer Benutzeroberfläche dynamisch * hinzuzufügen und * zu entfernen. – user3297291