2009-08-30 3 views
9

Сегодня я наткнулся на createDocumentFragment. Мне было интересно, поддерживается ли DocumementFragment и как, в разных браузерах, особенно IE серии.Поддержка браузера DocumentFragment

Кто-нибудь знает об этом предмете?

+1

http://stackoverflow.com/questions/1643349/is-there-any-way-to-find-an-element-in-a-documentfragment/1643383#1643383 См. Комментарий NickFitz. Фрагмент обрабатывается IE как документы. http://msdn.microsoft.com/en-us/library/ms536387%28VS.85%29.aspx – Olivvv

ответ

13

Да, он полностью поддерживается во всех современных браузерах (включая IE6).

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

+1

Несмотря на то, что documentFragment поддерживается всеми браузерами, методы обхода DOM, такие как 'getElementsByTagName',' children' и т. д. не работайте над ними. –

4

В целом он всегда работал нормально в соответствии с DOM спецификации.

Но не ожидайте, что нестандартные расширения будут работать без проблем ... например, вы не можете установить innerHTML на DocumentFragment (что является позором, поскольку это может значительно улучшить скорость вставки на некоторых больших страницах).

+1

, но вы можете создать держатель 'div' с' document.createElement' и добавить строку как 'innerHTML' в' div', а затем, наконец, добавить 'div' в' documentFragment' –

+0

Да, но это не дает преимущество перед тем, как работать непосредственно на 'div'. Идея заключалась бы в ускорении операций, таких как добавление многих строк в таблицу, которые обычно медленны с использованием методов DOM-узла. Вы можете сделать это много, объединив фрагменты с объектами «Range», за исключением того, что реализации браузера DOM Level 2 TR (особенно IE) реализованы не полностью. – bobince

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

Берегитесь однако, существование не всегда влечет за собой реализацию.

Gotchas

  • IE Mac 5.2 на Mac не могут добавлять текстовые узлы к документу фрагменты, ни добавить содержимое фрагмента в документ.
  • Opera 7.2 создает фрагмент, но не применяет стили к созданным элементам.
Смежные вопросы