2009-08-30 13 views
9

Oggi mi sono imbattuto in createDocumentFragment. Mi stavo chiedendo se il DocumementFragment è supportato e in che modo, sui diversi browser, specialmente le serie IE.Supporto browser DocumentFragment

Qualcuno sa qualcosa su questo argomento?

+1

http://stackoverflow.com/questions/1643349/is-there-any-way-to-find-an-element-in-a-documentfragment/1643383#1643383 Vedere il commento di NickFitz. I frammenti sono trattati da IE come documenti. http://msdn.microsoft.com/en-us/library/ms536387%28VS.85%29.aspx – Olivvv

risposta

13

Sì, è completamente supportato in tutti i browser moderni (incluso IE6).

See: http://www.quirksmode.org/dom/w3c_core.html#miscellaneous

+1

Anche se documentFragment è supportato da tutti i browser, i metodi di attraversamento DOM come 'getElementsByTagName',' children', ecc. non lavorare su di loro. –

4

In generale si ha sempre funzionato bene come per le specifiche DOM.

Ma non aspettatevi che le estensioni non standard funzionino perfettamente ... per esempio non potete impostare innerHTML su un DocumentFragment (il che è un peccato dato che avrebbe potuto migliorare notevolmente la velocità di inserimento su alcune pagine di grandi dimensioni).

+1

ma è possibile creare un 'div' titolare con' document.createElement' e aggiungere la stringa come 'innerHTML' a' div', e infine aggiungere il 'div' a' documentFragment' –

+0

Sì, ma ciò non dà vantaggio sulle prestazioni semplicemente operando direttamente su 'div'. L'idea sarebbe quella di velocizzare le operazioni come aggiungere molte righe a una tabella, che sono in genere lente con i metodi DOM nodo per nodo. Puoi fare molto questo combinando frammenti con oggetti 'Range', tranne che le implementazioni del browser di DOM Level 2 TR (specialmente IE) non sono ancora completamente lì. – bobince

4
  ╔═════════════════════════════════╗ 
     ║ document.createDocumentFragment ║ 
╔════════╬═════════════════════════════════╣ 
║ IE5 ║ true       ║ 
║ IEM5.2 ║ true       ║ 
║ IE5.5 ║ false       ║ 
║ IE6+ ║ true       ║ 
║ OPM6+ ║ true       ║ 
║ OP7+ ║ true       ║ 
║ N6+ ║ true       ║ 
║ KQ  ║ true       ║ 
╚════════╩═════════════════════════════════╝ 

Attenzione però, l'esistenza non implica sempre implementazione.

trucchi

  • IE Mac 5.2 su Mac non possono aggiungere i nodi di testo per documentare frammenti, né aggiungere il contenuto del frammento a un documento.
  • Opera 7.2 crea il frammento ma non applica gli stili agli elementi creati.
Problemi correlati