码迷,mamicode.com
首页 > 其他好文 > 详细

document.createDocumentFragment()的作用是什么

时间:2015-12-29 06:13:17      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:

document.createDocumentFragment()的作用是什么:
createDocumentFragment()函数可能用的并不是太多,之所以这样是因为不使用此方法完全可以实现所有的功能,但是如果能够妥当的使用此函数可以有效的提高执行效果,下面就通过实例简单介绍一下次函数用法。
先看一段代码实例:

 

var myArray=new Array("一","二","三","四","五","六");
window.onload=function()
{
  for(var i=0;i<6;i++) 
  {
    var odiv=document.createElement("div");
    var theText=document.createTextNode("蚂蚁部落"+myArray[i]);
    odiv.appendChild(theText);
    document.body.appendChild(odiv);
  }
}

 

以上代码可以依次输出"蚂蚁部落X"。怎么实现的非常简单,这里就不多说。其实上面的代码在执行效率方面还有提高的余地,因为每调用document.body.appendChild()都会渲染一次页面,执行效率自然就会降低,这个时候createDocumentFragment()函数的作用就会得到体现了,代码修改如下:

var myArray=new Array("一","二","三","四","五","六");
var myFragment=document.createDocumentFragment();
window.onload=function()
{
  for(var i=0;i<6;i++) 
  {
    var odiv=document.createElement("div");
    var theText=document.createTextNode("蚂蚁部落"+myArray[i]);
    odiv.appendChild(theText);
    myFragment.appendChild(odiv);
    document.body.appendChild(myFragment)
  }
}

以上代码使用实现了同样的功能,不过页面只渲染一次就可以了,执行效果当然就高了。
createDocumentFragment()函数:
此函数可以创建一个文档碎片节点。但是此函数创建的节点在文档中没有对应的标记,也就无法在页面中进行渲染,但总归是个节点,具有一般节点所具有特性,例如可以使用appendChild()等方法。
上面的代码实例说明使用此方法可以减少渲染次数,其实这个要分情况的,如果目标节点已经在文档中存在的情况下,使用此方法可以提高效率,如果目标节点在文档中不存在,需要动态创建的话,然后再进行添加同样也只是渲染一次,代码实例如下:

 

var myArray=new Array("一","二","三","四","五","六");
var fatherDiv=document.createElement("div");
window.onload=function()
{
  for(var i=0;i<6;i++) 
  {
    var odiv=document.createElement("div");
    var theText=document.createTextNode("蚂蚁部落"+myArray[i]);
    odiv.appendChild(theText);
    fatherDiv.appendChild(odiv);
    document.body.appendChild(fatherDiv)
  }
}

 

以上代码中,没有使用createDocumentFragment()函数同样只渲染一次。
所以说要理解在何种场景下使用才能够提高效率,而不是死记硬背。

原文地址是:http://www.softwhy.com/forum.php?mod=viewthread&tid=8439

更多内容可以参阅:http://www.softwhy.com/javascript/

 

document.createDocumentFragment()的作用是什么

标签:

原文地址:http://www.cnblogs.com/come-on/p/5084489.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!