2009-08-30 17 views
9

Hoy me encontré con createDocumentFragment. Me preguntaba si el DocumementFragment es compatible, y cómo, en los diferentes navegadores, especialmente en la serie IE.DocumentFragment browser support

¿Alguien sabe algo sobre este tema?

+1

http://stackoverflow.com/questions/1643349/is-there-any-way-to-find-an-element-in-a-documentfragment/1643383#1643383 Consulte el comentario de NickFitz. Fragmento son tratados por IE como documentos. http://msdn.microsoft.com/en-us/library/ms536387%28VS.85%29.aspx – Olivvv

Respuesta

13

Sí, es totalmente compatible con todos los navegadores modernos (incluido IE6).

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

+1

Aunque documentFragment es compatible con todos los navegadores, los métodos de cruce DOM como 'getElementsByTagName',' children', etc. no trabaje en ellos –

4

En general siempre ha funcionado bien según la especificación DOM.

Pero no espere que las extensiones no estándar funcionen sin problemas ... por ejemplo, no puede establecer innerHTML en un DocumentFragment (lo cual es una lástima ya que podría haber mejorado la velocidad de inserción en algunas páginas grandes).

+1

pero puede crear un titular 'div' con' document.createElement' y agregar la cadena como 'innerHTML' al' div', y finalmente agregar el 'div' al' documentFragment' –

+0

Sí, pero eso no da ventaja de rendimiento sobre solo operar directamente en el 'div '. La idea sería acelerar las operaciones, como agregar muchas filas a una tabla, que normalmente son lentas con los métodos DOM nodo a nodo. Puedes hacer mucho de esto combinando fragmentos con objetos 'Range', excepto que las implementaciones del navegador de DOM Level 2 TR (especialmente IE's) aún no están completamente ahí. – bobince

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

Sin embargo, Aviso, la existencia no siempre implica la aplicación.

Gotchas

  • IE Mac 5.2 en Mac no se puede añadir nodos de texto para documentar fragmentos, ni añadir el contenido del fragmento de un documento.
  • Opera 7.2 crea el fragmento pero no aplica estilos a los elementos creados.