JS三种动态创建元素区别

javaScript中有三种动态创建元素的方式

区别

三种方式都可以动态生成元素,详细区别如下:

1、首先说说document.write(),

代码如下,<body></body>标签中添加一个按钮,一个字符如下

   

   

运行效果如下:

当点击按钮后:

第二种情况,直接在页面中使用document.write(),此时效果如下:

综上,document.write() 创建元素  如果页面文档流加载完毕,再调用这句话会导致页面重绘。

2、innerHTML效率测试

innerHTML也可以动态创建元素,现在测试下它的执行效率,代码如下:控制台输出单位为ms

运行结果截图:

创建1000个带有样式的div用时870ms

上述方法是直接拼接的结果,现在我们利用数组,先把拼接的字符放数组里然后统一执行,看看效果

代码:

运行结果

耗时只需要2ms,所以使用innerHTML动态创建元素的时候,利用数组一次执行完毕是最佳的方式。

3、document.createElement()

代码:

运行结果

效率稍低于使用innerHtml数组执行的方式。

总结:

1、document.write(),是直接将内容写入页面的内容流,但是文档流执行完毕,则它会导致页面全部重绘。

2、innnerHTML是将内容写入某个DOM节点,不会导致页面全部重绘。

3、innerHTML创建多个元素效率更高(不要拼接字符串,采取数组形式拼接),结构稍微复杂

4、createElement(),创建多个元素效率稍微低一点,但是结构清晰

总之:不同浏览器下innerHTML 效率 > createElement,所以用innerHTML就完了。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值