Ember.js 1.8: Näher an der String-freien Rendering Pipeline
Ăśber 600 Commits sind in die aktuelle Version des JavaScript-Frameworks eingegangen, das sich unter anderem einer starken Ăśberarbeitung seiner Rendering-Schicht unterziehen musste.
- Julia Schmidt
Die Entwickler hinter dem Open-Source-Projekt Ember.js haben die Versio[n] 1.8 und die erste Beta des kommenden Minor Release 1.9 ihres Frameworks veröffentlicht. Durch einige Refactorings, soll sich die Leistungsfähigkeit nach dem Update verbessert haben, und die Entwickler haben sich ihrem Ziel, Ember.js von Strings zu befreien, einen Schritt genähert.
In älteren Versionen wurde der HTML-Teil einer Website über das Verketten von Strings erzeugt und zusammengefügt. Die aktuelle Variante wandelt die mit Handlebars erstellten Strings allerdings in ein Document Object Model (DOM) um und fügt sie zu einem DOM-Baum zusammen. Nach und nach soll Handlebars durch HTMLbars ausgetauscht werden, um die Strings ganz loswerden zu können. Erste Verbesserungen sind bereits jetzt in Form des verbesserten HTML-Namespaces und dem kontextbezogenen Element Tracking zu sehen. Außerdem haben die Entwickler die für Datenbindungen verwendete metamorph.js-Bibliothek durch morph.js ersetzt. Da sie auf reine Textknoten setzt, sollte es keine Probleme mit CSS-Selektoren mehr geben, da hier wohl keine Script-Tags zum Einsatz kommen.
Verbesserungen der Performance ließen sich zudem unter anderem durch zusätzliche Caches für Normalisierungsschritte erreichen, da hierdurch entsprechende Operationen weniger häufig durchzuführen sind. Mit dem Release hat das Ember.js-Team die Webseite auch um einen Deprecations Guide erweitert, in dem sich nachlesen lässt, welche Features in kommenden Versionen entfernt werden. Da die Entwickler auch dieses Mal einige Klassen, Methoden und Eigenschaften als veraltet gekennzeichnet haben, lohnt ein Blick auf den Guide.
Da man sich nun verstärkt neuen Features für die nächste Veröffentlichung widmet, steht mit Version 1.8 auch die erste Beta für Ember.js 1.9 bereit. Neuerungen sollen hier unter anderem Streams sein, die intern Bindungen auf der untersten Ebene der Rendering Pipeline ersetzen sollen. Weitere Informationen finden sich in der Ankündigung. (jul)