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


    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;
    }
     
     
    <!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>
    </html>
  • 相关阅读:
    在Objective-C声明Block的几种方式
    属性初始化
    OC协议
    堆排序的OC实现
    iOS 应用性能测试的相关方法、工具及技巧
    墙裂推荐 iOS 资源大全
    剖析@weakify 和 @strongify
    iOS开发大神必备的Xcode插件
    聊聊 KVC 和 KVO 的高阶应用
    TableView的优化
  • 原文地址:https://www.cnblogs.com/milk/p/2445799.html
Copyright © 2020-2023  润新知