zoukankan      html  css  js  c++  java
  • 读高性能javaScript

    1.HTML中脚本会阻塞页面其他资源的下载,因此所有的<script>标签尽可能放到<body>标签的底部。

    2.全局变量先存储到一个局部变量中,以局部变量代替全局变量以减少对性能影响。

    3.变量作用域中位置越深访问时间越长,局部变量存在于作用域链的起始位置访问速度最快,全局变量处于作用域链的最末端,访问速度最慢。

    4.嵌套对象会明显影响性能。

    5.循环性能优化

    (1)减少或者简化每次迭代处理的事务、或者减少迭代的次数

    for(var i = 0, len = item.length; i < len ; i++)
    {
        process(item[i]);
    }
    //修改为
    var j = 0, count = item.length;
    while(j < count)
    {
        process(item[j++])
    }
    //重写后循环运行前对长度进行一次属性查找,控制条件直接读取局部变量读取速度更快,大多浏览器可以节省25%运行时间。
    
    //再次优化
    var j = item.length;
    while(j--)
    {
        process(item[j])
    }
    //控制条件只是简单的和0比较直到为0(等同于false)控制条件从两次减少到一次进一步提高了循环速度(运行提升50%左右)

    6.判断条件数量较多,使用switch代替if-esle

    //if判断优化
    if
    (value == 0) { return result0; } else if(value == 1) { return result1; } ......................... else if(value == 10) { return result10; } //这个表达式最多要判断10次,如果value再0~10之间均匀分布会增加运行时间,代码重写为: if(value < 6) { if(value < 3) { ...... } else { ..... } } else { ..... } //使用了二分法把值域分成系列区间,重写后每次最多经过4次判断即可找出

     7.字符拼接concat比起+(符号)效率慢

                                                                    --减少工作量就是最好的性能优化

  • 相关阅读:
    前端实现文件下载
    es6 Promise简单介绍
    es6开发环境搭建,babel 将es6转化成es5
    如何让写得html页面自动刷新
    es6箭头函数
    js对象跟数组多层嵌套,检测没有此数据就添加有则不添加以及超过限制条件删除操作
    小程序分享进入H5动态网页
    数据结构与算法--基本概念
    Unity中的常用输入
    Unity中的物体旋转
  • 原文地址:https://www.cnblogs.com/xyptechnology/p/11115379.html
Copyright © 2011-2022 走看看