DocumentFragment
åºçº¿
广æ³å¯ç¨
*
èª 2015å¹´7æ èµ·ï¼æ¤ç¹æ§å·²å¨ä¸»æµæµè§å¨ä¸å¾å°æ¯æï¼å¯å¨å¤§å¤æ°è®¾å¤åæµè§å¨çæ¬ä¸æ£å¸¸ä½¿ç¨ã
* æ¤ç¹æ§çæäºé¨åçæ¯æç¨åº¦å¯è½ææä¸åã
DocumentFragmentï¼ææ¡£çæ®µæ¥å£ï¼è¡¨ç¤ºä¸ä¸ªæ²¡æç¶å¯¹è±¡çæå°ææ¡£å¯¹è±¡ã
å®è¢«ä½ä¸ºä¸ä¸ªè½»éçç Document 使ç¨ï¼å°±åæ åç document 䏿 ·ï¼åå¨ç±èç¹ï¼nodesï¼ç»æçææ¡£ç»æãä¸ document ç¸æ¯ï¼æå¤§çåºå«æ¯å®ä¸æ¯çå® DOM æ çä¸é¨åï¼å®çååä¸ä¼è§¦å DOM æ çéæ°æ¸²æï¼ä¸ä¸ä¼å¯¹æ§è½äº§çå½±åã
æé 彿°
DocumentFragment()-
å建并è¿åä¸ä¸ªæ°ç
DocumentFragment对象ã
屿§
该æ¥å£æ²¡æç¹æ®ç屿§ï¼å
¶å±æ§é½ç»§æ¿èª Nodeã
DocumentFragment.childElementCountåªè¯»-
è¿åææå±äº
DocumentFragmentçElementç±»åçå对象ã DocumentFragment.childrenåªè¯»-
è¿åä¸ä¸ªå®æ¶ç
HTMLCollectionï¼å ¶ä¸å å«äºææå±äºDocumentFragmentçElementç±»åçå对象ã ParentNode.firstElementChildåªè¯»-
è¿å
DocumentFragmentç第ä¸ä¸ªElementç±»åçå对象ï¼å¦ææ²¡æåè¿ånullã ParentNode.lastElementChildåªè¯»-
è¿å
DocumentFragmentçæåä¸ä¸ªElementç±»åçå对象ï¼å¦ææ²¡æåè¿ånullã
æ¹æ³
该æ¥å£ç»§æ¿ Node çå
¨é¨æ¹æ³ã
DocumentFragment.append()-
å¨ææ¡£çæ®µçæåä¸ä¸ªå对象åæå ¥ä¸ç»
Nodeæå符串对象ã DocumentFragment.prepend()-
å¨ææ¡£çæ®µç第ä¸ä¸ªå ç´ åæå ¥ä¸ç»
Nodeæå符串对象ã DocumentFragment.querySelector()-
è¿åå¨
DocumentFragmentä¸ä»¥ææ¡£é¡ºåºæåç第ä¸ä¸ªç¬¦åæå®éæ©å¨çElementèç¹ã DocumentFragment.querySelectorAll()-
è¿åå¨
DocumentFragment䏿æç符åæå®éæ©å¨çElementèç¹ç»æçNodeListæ°ç»ã DocumentFragment.getElementById()-
è¿åå¨
DocumentFragmentä¸ä»¥ææ¡£é¡ºåºæåç第ä¸ä¸ªç¬¦åæå® ID éæ©å¨çElementèç¹ãä¸Document.getElementById()ä½ç¨ç¸åã
使ç¨è¯´æ
æå¸¸ç¨çæ¹æ³æ¯ä½¿ç¨ DocumentFragment åå»ºå¹¶ç»æä¸ä¸ª DOM åæ ï¼ç¶åä½¿ç¨ Node æ¥å£æ¹æ³ï¼å¦ï¼appendChild() æ insertBefore()ï¼å°å
¶æå
¥å° DOM ä¸ãè¿ç§æ
åµä¸ä¼æå
¥çæ®µçææåèç¹ï¼å¹¶çä¸ä¸ä¸ªç©ºç DocumentFragmentãå 为ææçèç¹ä¼è¢«ä¸æ¬¡æå
¥å°ææ¡£ä¸ï¼æä»¥ä»
ä¼åçä¸ä¸ªé渲æçæä½ï¼è䏿¯æ¯ä¸ªèç¹åå«è¢«æå
¥å°ææ¡£ä¸ä»èåç夿¬¡é渲æçæä½ã
该æ¥å£å¨ Web ç»ä»¶ï¼Web componentsï¼ä¸ä¹é常æç¨ï¼<template> å
ç´ å¨å
¶ HTMLTemplateElement.content 屿§ä¸å
å«äºä¸ä¸ª DocumentFragmentã
å¯ä»¥ä½¿ç¨ document.createDocumentFragment æ¹æ³æè
æé 彿°æ¥å建ä¸ä¸ªç©ºç DocumentFragmentã
示ä¾
>HTML
<ul id="list"></ul>
JavaScript
const list = document.querySelector("#list");
const fruits = ["Apple", "Orange", "Banana", "Melon"];
const fragment = new DocumentFragment();
fruits.forEach((fruit) => {
const li = document.createElement("li");
li.textContent = fruit;
fragment.appendChild(li);
});
list.appendChild(fragment);
ç»æ
è§è
| è§è |
|---|
| DOM > # interface-documentfragment > |