2017-02-16 2 views
1

Ich habe eine mehrfach auswählbare Tabellenkomponente, die eine Table-Disaply-Komponente enthält. Innerhalb der Tabelle-Anzeige-Komponente gibt es eine andere Komponente namens Tabellenzeile.Ist es schädlich, zu viele Komponenten in einem einzigen zu verschachteln?

table-selectable 
     | (contains) 
     v 
table-display 
     | (contains) 
     v 
    table-row 

Ich tue dies, weil ich jede Komponente genereic genug machen möchten, so dass es für andere Zwecke verwendet werden können, Howere, merke ich es nicht einfach ist, die Aktion auf die die übergeordnete Komponente zu übergeben. Der Grund ist, dass ich alle Aktionen innerhalb sendAction Methode und den Aktionsnamen innerhalb der hbs-Datei sorgfältig verdrahten muss und ich denke, dass diese Wahrscheinlichkeit Fehler in der langen falschen Ursache verursachen kann.

Meine Frage ist, dass es schädlich ist, tom nay Komponenten innerhalb einer einzigen Komponente zu verschachteln, wie die, die ich gemacht habe?

Antwort

0

Javascript erstellt einen HTML-DOM-Baum von Objekten in einem geladenen Dokument. Dieses DOM steht Ihnen dann zur Verfügung, um mit seinen Elementen zu arbeiten. Javascript-Zugriff auf HTML-DOM ist immer noch langsamer als die Ausführung von Javascript ohne HTML-DOM zugreifen. Der Level, den du erwähnt hast, ist nicht zu tief verschachtelt, so weit du bist, bist du leicht auf die inneren Elemente zuzugreifen. Ereignisse, die von Elementen generiert werden, werden immer zum Ausführungskontext weitergeleitet, den das JavaScript-Modul zum Ausführen des Teils des Codes erstellt hat. Sie können also mit diesen Ereignissen auf globaler Ebene (die meiste Zeit "Fenster" -Ebene) arbeiten, bis Sie den Listener mit dem richtigen HTML-Element registrieren, um das richtige Ereignis anzuhören, sonst funktioniert das nicht. Zum Beispiel feuert ein Knopf ein "Klick" -Ereignis, z.B. document.getElementById('mybutton').addEventListener('click', function() { console.log('my button clicked'); }); Soweit es Ihnen gelingt, diese Schaltfläche auszuwählen und den Event-Listener "click" zu binden, sind Sie in Ordnung. Wenn der Elementselektor falsch ist oder Sie versuchen, das falsche Ereignis zu hören, funktioniert dies nicht. So weit das Volumen der Seite betroffen ist, je mehr der Inhalt, desto mehr Seitenladezeit. Betrachte es auch als eine SEO Perspektive.

Verwandte Themen