高性能JS--比较nextSibling,ChildNodes,Children速度

简介:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
</head>
<body>
<input type="button" value="start-test" id="testBtn" />
<ol>
<li>
<h3>nextSibling</h3>
<p id="test-1"></p>
</li>
<li>
<h3>childNodes</h3>
<p id="test-2"></p>
</li>
<li>
<h3>children</h3>
<p id="test-3"></p>
</li>
</ol>
<div id="mydiv"></div>
<script type="text/javascript">
function $(){ return document.getElementById(arguments[0]); };
for(var i=0; i<8000; i++){
var d = document.createElement('div');
d.innerHTML = '第一重div<p>第二重p<span>第三重span</span></p>';
$('mydiv').appendChild(d);
}
$('testBtn').onclick = startTest;
function startTest(){
var time1 = new Date();
var tar = testNextSibling();
$('test-1').innerHTML = '耗时:' + (new Date() - time1) + '毫秒 ' + tar;
var time2 = new Date();
var tar2 = testChildNodes();
$('test-2').innerHTML = '耗时:' + (new Date() - time2) + '毫秒 ' + tar2;
var time3 = new Date();
var tar3 = testChildren();
$('test-3').innerHTML = '耗时:' + (new Date() - time3) + '毫秒 ' + tar3;
}
function testNextSibling(){
var el = $('mydiv'),
ch = el.firstChild,
name = '';
do {
name = ch.nodeName;
} while (ch = ch.nextSibling);
return name;
}
function testChildNodes(){
var el = $('mydiv'),
ch = el.childNodes,
len = ch.length,
name = '';
for(var count=0; count<len; count++){
name = ch[count].nodeName;
}
return name;
}
function testChildren(){
var el = $('mydiv'),
ch = el.children,
len = ch.length,
name = '';
for(var count=0; count<len; count++){
name = ch[count].nodeName;
}
return name;
}
</script>
</body>


原书中说:IE中nextSibling比childNodes表现优异。在IE6中,nextSibling快16倍,IE7中是105倍。

经测试后发现:IE7下:nextSibling要快一些,childNodes与childnren速度相当。IE6下:nextSibling与childNodes差别相当大,children稍快。FF下还是nextSibling快一点。

复制代码
function  testNextSibling(){
    
var  el  =  $( ' mydiv ' ),
        ch 
=  el.firstChild,
        name 
=   '' ;
    
do  {
        name 
=  ch.nodeName;
    } 
while  (ch  =  ch.nextSibling);
    
return  name;
}
function  testChildNodes(){
    
var  el  =  $( ' mydiv ' ),
        ch 
=  el.childNodes,
        len 
=  ch.length,
        name 
=   '' ;
    
for ( var  count = 0 ; count < len; count ++ ){
        name 
=  ch[count].nodeName;
    }
    
return  name;
}
function  testChildren(){
    
var  el  =  $( ' mydiv ' ),
        ch 
=  el.children,
        len 
=  ch.length,
        name 
=   '' ;
    
for ( var  count = 0 ; count < len; count ++ ){
        name 
=  ch[count].nodeName;
    }
    
return  name;
}
复制代码

正美:

javascript测试函数运行速度</html>







本文转自豪情博客园博客,原文链接:http://www.cnblogs.com/jikey/archive/2011/06/19/2084627.html,如需转载请自行联系原作者

目录
相关文章
|
人工智能 缓存 JavaScript
读《高性能 JavaScript》笔记 -”JS进阶必读“(第二章)
读《高性能 JavaScript》笔记 -”JS进阶必读“(第二章)
133 0
|
前端开发 算法 API
构建高性能图像处理Web应用:Next.js与TailwindCSS实践
本文分享了构建在线图像黑白转换工具的技术实践,涵盖技术栈选择、架构设计与性能优化。项目采用Next.js提供优秀的SSR性能和SEO支持,TailwindCSS加速UI开发,WebAssembly实现高性能图像处理算法。通过渐进式处理、WebWorker隔离及内存管理等策略,解决大图像处理性能瓶颈,并确保跨浏览器兼容性和移动设备优化。实际应用案例展示了其即时处理、高质量输出和客户端隐私保护等特点。未来计划引入WebGPU加速、AI增强等功能,进一步提升用户体验。此技术栈为Web图像处理应用提供了高效可行的解决方案。
|
Web App开发 JavaScript 前端开发
高性能的纯Js滚动条美化插件smooth-scrollbar
smooth-scrollbar是一款高性能的纯JavaScript滚动条美化插件。该滚动条为现代浏览器而制作,它具有高性能,自由配置,平滑滚动等特点,支持各种现代桌面浏览器和手机设备。
|
JavaScript Serverless 网络架构
Next.js与SSR:构建高性能服务器渲染应用
创建Next.js项目使用`create-next-app`,每个页面自动支持SSR。动态路由如`pages/posts/[id]`,在`getStaticPaths`和`getServerSideProps`中获取数据。利用静态优化和预渲染提升性能,动态导入减少初始加载时间。使用`next/image`优化图片,自定义服务器增加控制,集成第三方库如Redux。优化SEO,利用i18n支持多语言,使用Serverless模式和Web Workers。项目支持TypeScript,创建`_error.js`处理错误,部署到Vercel并使用工具进行性能监控和优化。
710 4
|
存储 缓存 负载均衡
Node.js中间层如何处理并发请求以提供高性能和可扩展性
Node.js中间层如何处理并发请求以提供高性能和可扩展性
|
监控 JavaScript 前端开发
JavaScript与Nest.js:打造高性能的服务器端应用
Nest.js是Node.js的渐进式框架,融合OOP、FP和FRP,提供模块化、装饰器和依赖注入,助建高性能服务器应用。选择Nest.js的原因包括模块化设计、简洁的装饰器API和高性能基础(如Express或Fastify)。开始使用需安装Node.js和`@nestjs/cli`,创建项目、编写控制器。深入学习涉及模块化、服务的依赖注入及中间件。安全性优化涵盖HTTPS、CORS策略、限流和性能监控。
616 0
|
JavaScript 前端开发 数据安全/隐私保护
深入探讨Node.js:构建高性能服务器端应用
深入探讨Node.js:构建高性能服务器端应用
394 1
|
监控 JavaScript 前端开发
Node.js实操:构建高性能上网控制系统的代码技术解析
在网络时代,构建高性能的上网控制系统至关重要,而Node.js作为一种快速、轻量级的服务器端JavaScript运行环境,为开发者提供了丰富的工具和库。本文将深入探讨如何利用Node.js实操,构建高性能的上网控制系统,并通过代码技术解析来详细说明其实现过程。
378 1
|
缓存 JavaScript NoSQL
使用Node.js构建高性能的Web应用程序
在现代Web开发中,构建高性能的应用程序至关重要。Node.js是一个基于V8引擎的JavaScript运行环境,它非常适合处理并发请求和构建高性能的Web应用程序。本文将介绍一些使用Node.js构建高性能Web应用程序的技巧和最佳实践。
379 0
|
开发框架 前端开发 JavaScript
Mithril.js:一个高性能 JavaScript MVC 框架
现代前端的发展涌现出很多出色的 JavaScript 框架,在性能和效率方面各有特色,每个前端团队都有自己使用得比较顺手的开发框架。本文介绍一个新的前端框架:Mithril.js,是一个高性能 JavaScript 框架,它的大小和速度使其成为满足视图模型需求的不错选择。
533 0
Mithril.js:一个高性能 JavaScript MVC 框架

热门文章

最新文章