• 字符串拼接性能优化


    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]);  
       } 
  • 相关阅读:
    Mysql 小技巧
    关于提交form不刷新的问题
    取消超链接点击默认事件
    JS获取地址栏参数
    Maven 手动添加 JAR 包到本地仓库
    Mysql函数instr、locate、position VS like
    阿里巴巴常考面试题及汇总答案
    JS跳转action
    Struts2使用ModelDriven后JSON数据返回不正确
    简单的使用AngularJS的解析JSON
  • 原文地址:https://www.cnblogs.com/webliu/p/4412947.html
Copyright © 2020-2023  润新知