write fragment

óÀ½¿¡´Â ÀÚ¹Ù½ºÅ©¸³Æ®ÀÇ ¹®ÀÚ¿­À» "template element"·Î ¸¸µé·Á°í Çß´Ù.
ÀÚ¹Ù½ºÅ©¸³Æ® ¹®ÀÚ¿­À» "template element" ´ë½Å fragment·Î ¸¸µé¾îµµ ÃæºÐ ÇÒ°Í °°´Ù´Â »ý°¢ÀÌ µé¾ú´Ù.

fragment¿¡¼­ innerHTML »ç¿ëÇϱâ

fragment¿¡¼­´Â innerHTMLÀ» »ç¿ë ÇÒ¼ö ¾ø´Ù.
div.innerHTML·Î ÀÐÀºÈÄ¿¡ ºÎ¸ð¸¦ fragment·Î ¹Ù²Ù¸é µÈ´Ù.

function writeFragment(parentElement, childString) {
    let frag = document.createDocumentFragment();
    let divEl = document.createElement('div');
    divEl.innerHTML = childString;

    while(divEl.children.length) {
        frag.appendChild(divEl.children[0]);
    }
    
    parentElement.appendChild(frag);
}

let temp =
`<div>»ç´Â ³ÝÀÌ´Ù</div>
<div>¿À´Â ´Ù¼¸ÀÌ´Ù</div>`;

writeFragment(document.body, temp);

fragment clone Çϱâ

fragment°¡ ÀÌ¹Ì ÀÖÀ¸¸é Á¸ÀçÇÏ´Â fragment¸¦ ¸®ÅÏÇÑ´Ù.
¾øÀ¸¸é fragment¸¦ »ý¼ºÇÑ´Ù.

let getFragment = (function (childString, fragId) {
    let fragList = [];
   
    return function(childString, fragId) {
        if(fragList[fragId]) {
            console.log(fragId, 'ÇÁ·¡±×¸ÕÆ®°¡ ÀÖ½À´Ï´Ù.');
            return fragList[fragId];
        }
   
        let frag = document.createDocumentFragment();
        let divEl = document.createElement('div');
        divEl.innerHTML = childString;

        while(divEl.children.length) {
            frag.appendChild(divEl.children[0]);
        }
       
        fragList[fragId] = frag;
        console.log(fragId, 'Ãß°¡');
        return fragList[fragId];
    }
})();

document.body.appendChild(frag.cloneNode(true));

´Ù¿î·Îµå : fragment_write.html

ÂüÁ¶)
http://programmer-seva.tistory.com/60