zoukankan      html  css  js  c++  java
  • 字符串拼接性能优化

    var htmlString = '<div class="container">' + '<ul id="news-list">',
         for (var i = 0; i < NEWS.length; i++) {
              htmlString += '<li><a href="'+NEWS[i].LINK +'">' + NEWS[i].TITLE + '</a></li>';
         }
     htmlString += '</ul></div>';

    改为数组,再将其通过join()方法改为字符串,因为字符串一旦创建,它的值不能改变,要改变某变量保存的字符串,首先得销毁原来的字符串,然后再用新的字符串填充变量,因此字符串拼接速度慢,效率低。

    var htmlString = '<div class="container">' + '<ul id="news-list">',
    elem, array
    =[], for (var i = 0,len=NEWS.length;i<len;i++) { elem= '<li><a href="'+NEWS[i].LINK +'">' + NEWS[i].TITLE + '</a></li>'; array.push(elem); } array.join(""); htmlString += '</ul></div>';

    再举个例子:请指出以下代码的性能问题,并优化。

     var info="腾讯拍拍网(www.paipai.com)是腾讯旗下知名电子商务网站。";  
         info +="拍拍网于2005年9月12日上线发布,";  
         info +="2006年3月13日宣布正式运营,";  
         info +="是目前国内第二大电子商务平台。";  
        info=info.split(",");  
         for(var i=0; i<info.length; i++)  
          {  
             alert(info[i]);  
          } 

    字符串大的话,则拼接时间会长,效率低。再一个就是优化循环体,避免每次循环都计算一次数组的长度,因此将数组长度付给变量,只在第一次循环时计算。

    var array=[],
        info;
    array.push("腾讯拍拍网(www.paipai.com)是腾讯旗下知名电子商务网站。");
    array.push("拍拍网于2005年9月12日上线发布,");
    array.push("2006年3月13日宣布正式运营,");
    array.push("是目前国内第二大电子商务平台。");
    info=array.join("").split(",");  //数组到字符串再在逗号分隔符处分割成数组
    for(var i=0,len=info.length;i<len;i++)  
       {  
          alert(info[i]);  
       } 
  • 相关阅读:
    GIL锁、进程池和线程池、同步和异步
    线程
    socket编程
    单例模式
    反射、自定义内置方法来定制类的功能、元类
    elasticSearch(一)--数据1
    docker学习整理(三)
    docker学习整理(二)
    docker学习整理(一)
    IDEA 配置mybatis生成代码
  • 原文地址:https://www.cnblogs.com/webliu/p/4412947.html
Copyright © 2011-2022 走看看