创建节点三种方式和性能比较

Openstack-Rocky 一键安装(多节点搭建)~步骤超详细 1111 阅读详情

创建节点三种方式和性能比较

一、创建节点三种方式

(一)document.write()

注意如果页面已经加载完成,再调用会导致页面重绘

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Demo</title>
</head>
<body>
<script>
    document.write('<h3>Hello World!</h3>');
</script>
</body>
</html>

(二)element.innerHTML

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Demo</title>
</head>
<body>
<script>
    document.body.innerHTML = '<h3>Hello World!</h3>';
</script>
</body>
</html>

(三)document.createElement()

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Demo</title>
</head>
<body>
<script>
    var h3 = document.createElement('h3');
    h3.innerText = 'Hello World!';
    document.body.appendChild(h3);
</script>
</body>
</html>

二、性能测试

因为document.write()每次都会导致页面重绘,并且本身也有很大的局限性所以不在测试

(一)document.body.innerHTML性能测试

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Demo</title>
</head>
<body>
<script>
    var startTime = new Date();
    for (var i = 0; i < 1000; i++) {
        // 注意此处大量字符串拼接严重影响性能
        document.body.innerHTML += `<h3>Hello World!</h3>`;
    }
    var overTime = new Date();
    console.log(overTime.getTime() - startTime.getTime())
</script>
</body>
</html>

测试结果:平均在340毫秒左右

(二)document.createElement()性能测试

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Demo</title>
</head>
<body>
<script>
    var startTime = new Date();
    for (var i = 0; i < 1000; i++) {
        var h3 = document.createElement('h3');
        h3.innerText = 'Hello World!';
        document.body.appendChild(h3);
    }
    var overTime = new Date();
    console.log(overTime.getTime() - startTime.getTime())
</script>
</body>
</html>

测试结果:平均在2毫秒左右

(三)document.innerHTML优化字符串拼接

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Demo</title>
</head>
<body>
<script>
    var startTime = new Date();
    var buf = new Array();
    for (var i = 0; i < 1000; i++) {
        // 此处优化字符串拼接
        buf.push(`<h3>Hello World!</h3>`);
    }
    document.body.innerHTML = buf.join('');
    var overTime = new Date();
    console.log(overTime.getTime() - startTime.getTime())
</script>
</body>
</html>

测试结果:平均在1毫秒左右

三、总结

总结偏个人主观,紧供参考

  1. document.write()只能以整个文档为单位操作,并且在页面加载完成过后调用会导航整个页面重绘不推荐使用。
  2. document.innerHTML在数组拼接下速度相比document.createElement()快1倍左右。
  3. document.innerHTML在程序处理嵌套结构时结构不如document.createElement()清析。
  4. 日常使用推荐document.createElement()在处理数据时结构更清晰,方便后期维护并且现在出现有大量数据需要网页显示,一般都是通过分页显示,同时不显示大量数据,当出现有大量数据又需要同时在网页显示性能优先可以考虑document.innerHTML。
centOS7系统虚拟机节点的搭建 随着计算机的发展,越来越多的人认识到大数据的优点,这时就不得不提Hadoop,Hadoop能够处理海量数据的存储和海量数据的分析计算问题,具有4高优势:(1)高可靠性:Hadoop底层维护多个数据副本,所以即使Hadoop某个计算元素或存储出现故障,也不会导致数据的丢失。(2)高扩展性:在集群间分配任务数据,可方便的扩展数以千计的节点。(3)高效性:在MapReduce的思想下,Hadoop是并行工作的,以加快任务处理速度。(4)高容错性:能够自动将失败的任务重新分配。 阅读详情

相关推荐

全网最详细solana 全节点搭建教程

1.拉去最新发布的solana源代码 wget https://github.com/solana-labs/solana/releases(自己选版本) 2.配置编译源代码的环境 #安装 Rust 环境 卷曲 https://sh.rustup.rs -sSf | 嘘 来源 $HOME/.cargo/env #安装依赖环境 sudo apt-get install...

qq_59591392的博客 5164

多节点私链搭建教程(一)

向导 geth的安装和使用过程 windows下安装Geth 配置和使用 搭建私有网络 windows下安装Geth 1.下载地址: https://geth.ethereum.org/downloads/ 下载windows版 2.安装geth时,只需将默认地址更改,并且勾中DEVELOPMENT TOOLS这个选项即可。 3.配置geth的环境变量: 3.1右键此电脑选中属性 3.2在相关设置中找到高级系统设置(如果没找到可以直接在windows设置中查找高级系统设置这个功能) .

m0_55932113的博客 3758

DOM创建元素节点.获取节点

1.每点击一下去创建一个节点元素:案例如下 <div id="wrap"></div> <script> let oWrap = document.querySelector("#wrap"); // 每在页面上点1下,都在wrap内生成一个 div,每个div的背景色都是随机的 // wrap里每个div节点,都能绑定1个点击事件,点击时,可以打印自身 document.documentElem..

weixin_66171880的博客 2121

节点操作之创建和添加节点

document.createElement() 方法创建由tagName指定的HTML元素,因为这些元素原先不存在,是根据需要动态生成的,所有也称之为。node.appendchild()方法将一个节点添加到指定父节点的子节点列表。node.insertBefore()方法将一个节点添加到父节点的指定节点。2.node.insertBefore(child,指定元素),类似于css里面的before伪元素。,类似于css里面的after伪元素。

weixin_67110633的博客 2811

单点DToF激光测距传感器各家产品的比较

汇总DToF 单点测距传感器的相关信息

Linux 设备驱动概述及开发环境构建 (一) 1771

第7.1章:StarRocks性能调优——查询分析

第7.1章:StarRocks性能调优——查询分析

爱吃辣条的博客 6476

JavaScript中元素创建的三种方式及区别比较

目录document.write()element.innerHTMLdocument.createElement()element.innerHTML与document.createElement() 效率比较 document.write() document.write() 是直接将内容写入页面的内容流,但是文档流执行完毕,则它会导致页面全部重绘。 <div>123</di...

zjhahaha123的博客 372

从RADIUS服务器到AP:实战搭建一个小型WPA2-Enterprise测试环境(FreeRADIUS + 家用路由器)

本文详细介绍了如何从零搭建WPA2-Enterprise测试环境,使用FreeRADIUS服务器和家用路由器实现企业级WiFi认证。通过实战指南,包括证书生成、EAP-PEAP配置、OpenWrt路由器设置及故障排查,帮助网络工程师和爱好者掌握802.1X协议栈的实际应用。

weixin_28715953的博客 324

访问节点和创建节点的方法都有什么

新内容

2503_91259466的博客 1292

从零配置华为S5720交换机VLAN:Web界面与命令行双模式详解(附拓扑图)

本文详细解析华为S5720交换机VLAN配置的全过程,涵盖Web界面与命令行(CLI)双模式操作指南。从基础环境准备到多交换机环境配置同步,特别针对S5720-52X系列交换机的VLANif接口、端口分配策略及交换机堆叠技术进行深入讲解,并附实用拓扑图与配置示例,助力企业网络管理员高效完成VLAN部署。

happy2的博客 1368

Pintos project 1 实验报告(代码分享)

任务一 Alarm Clock 用到的相干目录有: pintos/src/devices time.h && time.c pintos/src/threads thread.h && thread.c 预期pass希望:暂无,安装pintos之后,第一次对threads进行make check操作,可以发现以alarm--开头的前六个文件,以及mlfqs-fair-2和mlfqs-fair-20文件,一开始就测试成功pass。但是为了避免对后期的修改有影响,这里还是要

m0_53112875的博客 6860

Hive 索引 和 Hive Metastore 的三种配置方式

Hive 索引 和 Hive Metastore 的三种配置方式

qq_42952637的博客 2009

通讯软件002——快速使用modscan进行modbus调试

快速使用modscan进行modbus调试

zhouwl72的博客 1031

React Hooks—— useRef用法及类组件的三种ref创建使用方式

给元素标签设置ref,目的:获取对应的DOM元素给类组件设置ref,目的:获取当前调用组件创建的实例(后续可以根据实例获取子组件中的相关信息)// 基于ref获取子组件的实例,这样基于实例,可以调用子组件内部,挂载到实例上的东西 class Child extends React . Component {state = {x : 1000 };

m0_46569480的博客 3298

SAP 批量修改 工艺路线 和 BOM

1、在运维的过程中经常会遇到用户需要批量更改组件,或者是批量更改数量,还是组件里面的一些标识,当处理这些批量数据处理的业务时,BOM的批量更改一个想到的就是CS20,但是CS20当BOM需要替换的时候就不是很适用。当前工作区域:选择 SAP_ITEM 对BOM行项目进行变更,工艺路线也是可以批量更改的,根据实际的业务进行选择,我这里选择的就是BOM的组件变更。5、本博客将使用新的一种方式进行BOM的批量变更,标准的事务代码:CEWB对BOM进行批量更改。3、使用LSMW的方式进行BOM的批量更改。

我小时候很黑的博客 4093

栅格数据做相关性分析前的预处理(批量定义投影、栅格投影、重采样)

最近在做两个栅格数据的相关性分析,这个最主要的是两个栅格数的行列号是一致的(也就是说坐标系、分辨率一致),那么标准的栅格数据的分辨率是以米的形式存在的,但是有一些栅格数据是以度为单位存在的,所以在做分析前,一定要先把其转换为米,否则在重采样的时候就会出错。(相关文章——栅格数据以度为单位变为以米为单位的简单做法)当然,在变其分辨率的单位前,一定要将其坐标系转换为一致。所以就有以下的步骤(如何将两个栅格数据的坐标系、分辨率的单位和分辨率一致) 1.首先,要看两个栅格数据的坐标系是否一致,如果不一致,要先统一到

qq_41828818的博客 8350

创建新DOM节点方式总结

DOM节点创建方法对比

木木的学习笔记 922

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

jquery 元素节点操作 - 创建节点、插入节点、删除节点

jquery的节点操作说明 前面的篇章对于jquery的元素操作大部分是使用html()的方式来操作,这种直接使用字符串创建的方式也是性能最高的。 使用html()操作节点 首先编写一个div包含一个a标签,如下: 下面来给这个a的后面加上一个span标签看看,如下: 在这里面可以看到,首先使用$('div').html()得到原来的内部元素字符串,然后...

DevOps海洋的渔夫@专栏 1939

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

【Web APIs】JavaScript 节点操作 ⑥ ( 创建和添加节点 | 创建标签节点 | 创建文本节点 | 创建文档片段 | 添加节点 | 代码示例 )

一、JavaScript 创建节点 1、创建标签节点 2、创建文本节点 3、创建文档片段 二、JavaScript 添加节点 三、创建并添加节点 - 代码示例 1、代码示例 2、执行结果

让 学习 成为一种 习惯 ( 韩曙亮 の 技术博客 ) 1317

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

vue和react diff算法比较

3.① Vue的列表比对,采用从两端到中间的方式,旧集合和新集合两端各存在两个指针,两两进行比较,如果匹配上了就按照新集合去调整旧集合,每次对比结束后,指针向队列中间移动;③当一个集合把最后一个节点移动到最前面,react会把前面的节点依次向后移动,而Vue只会把最后一个节点放在最前面,这样的操作来看,Vue的diff性能是高于react的。2.Vue对比节点,当节点元素类型相同,但是className不同时,认为是不同类型的元素,删除重新创建,而react则认为是同类型节点,进行修改操作。

hubert39641020的博客 4510

Dom如何创建和删除元素节点

DOM节点操作--创建和删除元素节点 <body> <ul id="list1"> <li>样板房</li> </ul> <div> <button type="button" onclick="addElementLi();">添加LI</but...

beibei_niao的博客 323

三种方式实现分布式锁

通过以上过程你可以发现锁的获取是按照创建时间来的,谁先来争取锁谁就先获得锁,因此它实现的是公平锁。答案是不能,以Synchronized关键字为例,Synchronized关键字无论是在偏向锁、轻量级锁还是重量级锁状态都不能实现这点,如重量级锁,重量级锁是靠系统底层的互斥量Mutex实现的,也就是说每个节点(服务器)所使用的互斥量是分开的,节点A的互斥量是无法锁住节点B的线程访问临界区,因此Synchronized关键字只能保证单服务器内的JVM进程的不同线程同步,是不能用做分布式环境中来保证线程同步。

qq_43842093的博客 1558

js 三种创建新元素的方式

三种创建元素的方式 document.write()创建元素——它会导致页面的重绘,也就是说会将页面之前的样式全部修改。从下图中可以看出,点击按钮之后,页面中的标签也被修改了。 innerHTML 是将内容直接写入某个DOM节点,不会导致页面重绘,创建多个元素的效率更高(不要拼接字符串,采取数组形式拼接,数组拼接的形式效率最高),结构稍微复杂。 <!DOCTYPE html> <html lang="en"> <head> <meta cha

m0_46396424的博客 2231

第2关:节点删除与创建

ZooKeeper-API基础 第2关:节点删除与创建

qq_61604164的博客 1786

分布式锁-三种实现方式简述

目前几乎很多大型网站及应用都是分布式部署的,分布式场景中的数据一致性问题一直是一个比较重要的话题。分布式的CAP理论告诉我们“任何一个分布式系统都无法同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance),最多只能同时满足两项。所以,很多系统在设计之初就要对这三者做出取舍。在互联网领域的绝大多数的场景中,都需要牺牲强一致性来换取系统的高可用性,系统往往只需要保证“最终一致性”,只要这个最终时间是在用户可以接受的范围内即可。

少说,多做 1万+
上一篇: NPM:换源
下一篇: Gulp常见错误
yimtcode
博客等级 码龄6年 205粉丝 140原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yimtcode

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值