JavaScript AppendChild 引发的思考
其实是这样的,下面进入AppendChild和innerHtml的性能随语:
直接看代码,就可以了。
<body>
</body>
<script>
var starttime = new Date();
for(i = 0 ; i < 100 ; i ++){
document.body.innerHTML += "<input type='text' value='" + i + "'>";
}
alert(new Date() - starttime);
</script>
知道测试时间是比较长,大约"1000"多
appendChild:
<body>
</body>
<script>
var starttime = new Date();
for(i = 0 ; i < 100 ; i ++){
ds = document.createElement("input");
ds.type = "text";
ds.value = i;
document.body.appendChild(ds);
}
alert(new Date() - starttime);
</script>
其实以上例子还可以在改进一下,因为拼接字符串,重新解析html方面的消耗,所以速度就下来。
<body>
</body>
<script>
var starttime = new Date();
var html = []
for(i = 0 ; i < 100 ; i ++){
html.push("<input type='text' value='")
html.push(i)
html.push("'>")
}
document.body.innerHTML = html.join("")
alert(new Date() - starttime);
</script>
时间大约为”20“
甚至如果你有更快的话,
<body>
</body>
<script>
var starttime = new Date();
var a = [];
for(i = 0 ; i < 100 ; i ++){
a[i]= "<input type='text' value='" + i + "'>";
}
document.body.innerHTML = a.join("");
alert(new Date() - starttime);
</script>
事实上,当不同情况下,速度之比是不同的,
如:当一次性加载大量且复杂的网页元素时,用innerHTML比appendChild()速度要快的
而当每次只加载几个网页元素,并且要频繁加载时,此时appendChild()比innerHTML就快了。Clear
最后附上浮动图片的代码:
function link$onmouseover(){
var linkimg = this.linkimg;
if(!linkimg){
linkimg = document.createElement("img");
with(linkimg){
src = this.href;
style.position = "absolute";
style.left = this.style.left;
style.top = this.style.top;
}
document.body.appendChild(linkimg);
this.linkimg = linkimg;
}
linkimg.style.display = "";
}
function link$onmouseout(){
var linkimg = this.linkimg;
if(linkimg){
linkimg.style.display = "none";
}
}
</script>
<a id="link1" href="图示地址"> link1 </a><br />
<a id="link2" href="imagesCAZ4JHCC.jpg"> link2 </a>
<script>
var link1 = document.getElementById("link1");
var link2 = document.getElementById("link2");
link1.onmouseover = link$onmouseover;
link1.onmouseout = link$onmouseout;
link2.onmouseover = link$onmouseover;
link2.onmouseout = link$onmouseout;
</script>
转载于:https://www.cnblogs.com/RuiLei/archive/2007/10/19/930079.html
JavaScript AppendChild 引发的思考相关推荐
- JAVA-OPTS引发的思考
JAVA-OPTS引发的思考 我们在性能测试过程中,经常要修改应用的JAVA-OPTS参数.修改这些参数,不单单是修改这些数字,本着知其所以然的态度,我们要知道这些参数背后的意义. 常见的JAVA-O ...
- 一个小程序引发的思考
既然是一个小程序引发的思考,那么我们就先看看这个小程序,看看他有何神奇之处: namespace ConsoleApplication1 {class Program{static void Main ...
- 由“递归遍历二叉树”引发的思考
由"递归遍历二叉树"引发的思考 递归的用法我感觉自己已经掌握了,可是今天在递归遍历二叉树时,它又迷一样令我费解.我本人在算法这一块很薄弱,所以想把这个问题发出来,希望有大神能够为我 ...
- 由一行文本输入框引发的思考
文章是关于React组件之表单单行文本输入框的一些思考.可能大家第一反应都是,不就是一行<input/>嘛,没什么特别的吧?如果说到输入框的值的话,可能圈子里上大多数封装好的React ...
- 由熊猫烧香引发的思考
由熊猫烧香引发的思考 早期的计算机病毒诞生,作者是以技术炫耀为主,编写这类病毒需要更深入的了解系统及网络技术,开发功底也要更深厚.现阶段,一个合格的程序员,制造出具备破坏性的代码,已经不怎么难.甚至, ...
- Spring之LoadTimeWeaver——一个需求引发的思考---转
原文地址:http://www.myexception.cn/software-architecture-design/602651.html Spring之LoadTimeWeaver--一个需求引 ...
- 由SecureCRT引发的思考和学习
由SecureCRT引发的思考和学习 http://mp.weixin.qq.com/s?__biz=MzAxOTAzMDEwMA==&mid=2652500597&idx=1& ...
- C语言中递归什么时候能够省略return引发的思考:通过内联汇编解读C语言函数return的本质...
C语言中递归什么时候能够省略return引发的思考:通过内联汇编解读C语言函数return的本质 事情的经过是这种,博主在用C写一个简单的业务时使用递归,因为粗心而忘了写return.结果发现返回的结 ...
- 由「Metaspace容量不足触发CMS GC」从而引发的思考
转载自 由「Metaspace容量不足触发CMS GC」从而引发的思考 某天早上,毛老师在群里问「cat 上怎么看 gc」. 好好的一个群 看到有 GC 的问题,立马做出小鸡搓手状. 之后毛老师发来 ...
最新文章
- python怎么读取txt文件数据保存数组中-python将txt等文件中的数据读为numpy数组的方法...
- Oracle监听器Server端与Client端配置实例
- 《NIOSII那些事儿》rev7.0 PDF版本发布
- 数据结构-栈在括号匹配中的应用
- 单片机c语言位运算写法,单片机与嵌入式系统中C语言的位运算小记
- 前端学习(926):淘宝flexiblejs源码分析之核心原理
- baidumap vue 判断范围_vue 数据渲染
- HTML,,,音乐,html embed用法
- 20145326蔡馨熤《网络对抗》——信息搜集与漏洞扫描
- 20155315 2016-2017-2 实验二《Java面向对象程序设计》实验报告
- SpringMVC路径配置
- Html加水印和禁用复制和右键(jquery.watermark.js)
- java几次,java兑现限制用户几次登录
- undo log、rollback segment
- python 生成word目录
- 高冷一字id_lol高冷而有诗意的id
- Jquery事件大全
- Tomcat 面试题
- leetcode_1579. 保证图可完全遍历
- STM32有关I2S录音有噪声噼里啪啦及其他应用注意PCM1808
热门文章
- 关于站库分离渗透思考总结
- 基于OpenCV的图像阴影去除,你会吗?
- HTML DOM getElementsByName() 方法
- 生产中的12种容器镜像扫描最佳实践
- Apache - No space left on device / Failed to create proxy Mutex
- Nginx 错误10013: An attempt was made to access a socket in a way forbidden
- python3爬虫初探(四)之文件保存
- submit与execute区别
- jQuery插件 -- Cookie插件jquery.cookie.js(转)
- 阿里云云效功能升级,支持快速创建多个应用的独立测试环境