zoukankan      html  css  js  c++  java
  • 关于代码的性能问题

    请指出一下代码的性能问题,并经行优化。
       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 lang = "Java";

               lang = lang + "Script";

    实现这个操作的过程:1、创建一个能容纳10个字符的新字符串。

                                2、在这个字符串中填充"Java" 和"Script";

                                3、销毁原来的字符串"Java"和"Script";

    这个过程是在后台发生的,而这也是在某些旧版本的浏览器(IE、版本低于1.0的firefox)中拼接字符串时速度比较慢的原因所在。

     

    优化:1、由于字符串相加比较慢,所以可以考虑直接把所有字符写在同一个变量中。

             2、仔细考虑这段JS需要实现的功能,会发现,其实完全可以用一个数组来存储,然后遍历数组输出,这样效率会提高很多,因为省去了info=info.split(",");执行所要消耗   的时间。

             优化结果如下

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

  • 相关阅读:
    NS3笔录
    网络性能指标的几个定义
    获取Emum类型值的数量
    Container类型元素累加
    ax用代码调用静态查询
    FormRun类的方法detach()作用
    Num2Str函数使用介绍
    查询生产单PO的位置
    AX使用临时表作为数据源
    Date2Str函数使用介绍
  • 原文地址:https://www.cnblogs.com/yingsmirk/p/2392497.html
Copyright © 2011-2022 走看看