关于一个常被大家遗忘的方法解决频繁操作 dom节点引起页面回流
2010-06-29 10:24
369 查看
用document.createDocumentFragment()来新建一个代码片段
如下代码:
代码 var _tn;
var _d=document;
for(var i=0;i<100;i++){
_tn=_d.createTextNode(i);
document.body.appendChild(_tn);
}
上面写法会引起100次的页面回流(也就是dom树的100次刷新)
而下面的写法只刷新一次
代码
var _tn;
var _d=document;
var _dFragment=_d.createDocumentFragment();
for(var i=0;i<100;i++){
_tn=_d.createTextNode(i);
_dFragment.appendChild(_tn);
}
document.body.appendChild(_dFragment);
其实这就像我们常常采用并字符串的形式
var con='';
for(var i=0;i<10;i++){
con+='<li>123<li>';
}
obj.innerHTML=con;有时这种方法效率会更高
如下代码:
代码 var _tn;
var _d=document;
for(var i=0;i<100;i++){
_tn=_d.createTextNode(i);
document.body.appendChild(_tn);
}
上面写法会引起100次的页面回流(也就是dom树的100次刷新)
而下面的写法只刷新一次
代码
var _tn;
var _d=document;
var _dFragment=_d.createDocumentFragment();
for(var i=0;i<100;i++){
_tn=_d.createTextNode(i);
_dFragment.appendChild(_tn);
}
document.body.appendChild(_dFragment);
其实这就像我们常常采用并字符串的形式
var con='';
for(var i=0;i<10;i++){
con+='<li>123<li>';
}
obj.innerHTML=con;有时这种方法效率会更高
相关文章推荐
- 关于jQuery EasyUI 中刷新Tab选项卡后一个页面变形的解决方法
- 关于shtml页面include问题解决方案因为utf-8的BOM头引起的出现一个空行
- 关于echarts 同页面多图表同实例名resize只变一个的解决方法
- 一个关于指针的问题,问题很简单,但容易出错,希望大家提出好的解决方法~~~
- 关于ASP.NET“操作必须使用一个可更新的查询”问题的解决方法
- 这是一个关于XML文档的操作管理器XMLHelper类,类中包括XML文档的创建,文档节点和属性的读取,添加,修改,删除的方法功能的实现
- 采用DOM模型时创建一个Select节点后,要删除option项的解决方法
- 关于ssh框架下的web 频繁操作 页面在运行几个action后卡死 不响应的解决办法
- 关于jQuery EasyUI 中刷新Tab选项卡 后一个页面变形的问题的解决方法
- VS2005中的一个小BUG:关于Dropdownlist无法Datadinding的解决方法。
- 网站后台登录aspcms 提示错误号:-2147467259,错误描述:操作必须使用一个可更新的查询。sql=update AspCms_Content set TimeStatus=0 where TimeStatus=1 and Timeing <= 解决方法。
- vs2005部署错误"在一个非套接字上尝试了一个操作"的解决方法
- 关于tableView的cellForRowAtIndexPath方法不走的一个解决办法
- JSP页面IE无法打开Internet 站点…… 已终止操作 的解决方法
- fullpage插件动态添加节点,页面不能动态渲染问题解决方法
- 关于.Net 调试 运行的时候,页面无法显示的解决方法
- 关于appium操作真机打开app之后无法定位页面元素的问题的解决办法
- js和jquery在操作dom节点时各自的方法
- 关于Tomcat7无法编译jsp页面的解决方法
- 关于浏览器主页被hao123等页面篡改的解决方法