Mi piacerebbe avere lo "stesso" elemento HTML reso in più punti sulla pagina. Questo elemento è scriptato/animato e i vari rendering devono rimanere sincronizzati.Specchiamento di elementi HTML, probabilmente usando l'ombra DOM
Le soluzioni che ho presi in considerazione comprendono:
- copie posti dalla elemento in più punti e aggiornare tutti loro. Questo è quello che sto cercando di evitare.
- Inserire copie dell'elemento in più posizioni. Aggiorna una delle copie e utilizza gli eventi di mutazione per acquisire tali modifiche e riprodurle contro le altre copie. Sembra un sacco di lavoro.
- Usa DOM ombra. Avevo grandi speranze per questa alternativa, che inizialmente sembra essere possibile, utilizzando "punti di inserimento", che consentono a un sottoalbero DOM qui di essere virtualmente collocato in una sottostruttura DOM laggiù.
Non ho provato questa ultima alternativa, ovvero available in Chrome 25. Il W3C spec dice:
Un caso che merita particolare è la situazione in cui un punto di inserimento è un nodo figlio di un altro host ombra ... L'effetto di un nodo essendo distribuito in più di un punto di inserimento è chiamato riproiezione.
Ma poi ...
Nonostante sia distribuito a più di un punto di inserimento durante riproiezione, un nodo è ancora reso sola volta, a causa dei vincoli nelle quali si verifica la riproiezione : poiché i punti di inserimento sono soggetti a riproiezione solo se sono figli di un shadow host , non vengono mai visualizzati. Invece l'albero delle ombre è visualizzato al loro posto.
Sembra probabile che DOM ombra possa fare ciò che voglio e vale la pena di testare oppure esiste un altro approccio consigliato?
Quindi, se il contenuto del DOM ombra cambia, non viene ricreato? – Michael
Se il contenuto di Shadow DOM cambia è reso. Ma nel rendering di DOM, incluso Shadow DOM, un elemento viene presentato solo in una istanza; non ci sono più presentazioni simultanee di contenuti. –