博客
关于我
JavaScript innerHTML和createElement效率对比
阅读量:105 次
发布时间:2019-02-26

本文共 562 字,大约阅读时间需要 1 分钟。

DOM节点操作中的innerHTML与createElement效率比较

在DOM操作中,innerHTML和createElement都是创建元素的常用方法,但它们的效率存在显著差异。本文通过测试三种方法创建1000个元素所需的时间,来比较它们的性能表现。

测试方法

本次测试选用了三种常见的DOM操作方式:

  • innerHTML字符串拼接:通过将每个元素的HTML字符串直接追加到页面中。
  • innerHTML数组拼接:将所有元素的HTML字符串收集到数组中,最后一次性拼接到页面中。
  • createElement方法:逐个创建元素并添加到页面中。
  • 测试结果

    通过实际测试,三种方法的时间差异较为明显:

  • innerHTML字符串拼接:所需时间为1245ms
  • innerHTML数组拼接:所需时间为421ms
  • createElement方法:所需时间为587ms
  • 性能对比

    从时间数据可以看出:

    • innerHTML字符串拼接的效率最低,耗时1245ms。
    • createElement方法的效率次之,耗时587ms。
    • innerHTML数组拼接的效率最高,耗时421ms。

    结论

    在实际项目中,可以根据具体需求选择合适的DOM操作方式。对于需要频繁创建元素的场景,建议使用innerHTML数组拼接方式,以获得最佳性能表现。

    转载地址:http://zfsu.baihongyu.com/

    你可能感兴趣的文章
    Orderer节点启动报错解决方案:Not bootstrapping because of 3 existing channels
    查看>>
    org.apache.axis2.AxisFault: org.apache.axis2.databinding.ADBException: Unexpected subelement profile
    查看>>
    sql查询中 查询字段数据类型 int 与 String 出现问题
    查看>>
    org.apache.commons.beanutils.BasicDynaBean cannot be cast to ...
    查看>>
    org.apache.dubbo.common.serialize.SerializationException: com.alibaba.fastjson2.JSONException: not s
    查看>>
    sqlserver学习笔记(三)—— 为数据库添加新的用户
    查看>>
    org.apache.http.conn.HttpHostConnectException: Connection to refused
    查看>>
    org.apache.ibatis.binding.BindingException: Invalid bound statement错误一例
    查看>>
    org.apache.ibatis.exceptions.PersistenceException:
    查看>>
    org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned
    查看>>
    org.apache.ibatis.type.TypeException: Could not resolve type alias 'xxxx'异常
    查看>>
    org.apache.poi.hssf.util.Region
    查看>>
    org.apache.xmlbeans.XmlOptions.setEntityExpansionLimit(I)Lorg/apache/xmlbeans/XmlOptions;
    查看>>
    org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /
    查看>>
    org.hibernate.HibernateException: Unable to get the default Bean Validation factory
    查看>>
    org.hibernate.ObjectNotFoundException: No row with the given identifier exists:
    查看>>
    org.springframework.boot:spring boot maven plugin丢失---SpringCloud Alibaba_若依微服务框架改造_--工作笔记012
    查看>>
    SQL-CLR 类型映射 (LINQ to SQL)
    查看>>
    org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
    查看>>
    org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
    查看>>