zoukankan      html  css  js  c++  java
  • <<高性能Javascript>>读后总结

    出师自白:

    花了一周时间第一遍看完这本书,可能要搁置一段时间或者被某个问题困惑才会再拿起这本书。纵观全书,为之前犯过的错误悔恨不已,不禁感叹,若是早点看到这本书,之前所倾心投入的产品该提供多大的性能,多少困扰整个组的问题可以迎刃而解啊。错误已不可修复,因为已经离开之前的产品。个人从书中摘抄出来的观点肯定有限于与目前个人的水平,希望以后还能再更新或来者提出宝贵意见。

    第一章,加载和执行。

    1.3无阻塞脚本

     dev这个控件,一直用到12这个版本。有个复杂页面算是焦点功能页,局域网内第一次加载完所有它的脚本居然要3秒多啊,神一样的控件库,神一样的设计思想。所有脚本在捆在一个资源里。最后只能不停的减少它的控件,最终放弃了它的鸡肋皮肤功能。

    一些原则:

     a, </body>标签闭合之前,所有<script>标签放到页面地步,这能确保脚本在执行前页面可以完成渲染。很多不负责任的教材,例子都是随意相反这个原则。

     b,合并<script>标签,标签越少越好。无论外链还是内嵌脚本.

     c,多种无阻塞下载javascript方法:

        ——<script>标签的defer属性,仅使用与IE和firefox3.5以上版本。

        ——动态<script>标签。

         ——XHR下载。

    第二章 数据访问

      a,一定要了解,理解作用域。

      b,访问直接量和局部变量的速度最快。

      c,避免使用with,因为它会改变运行期上下文作用域。同样,try-catch语句中的catch也会。

      d,嵌套的对象成员会明显影响性能,尽量少用。

      e,属性货方法在原型链中的位置越深,越慢。

    第三章,DOM编程。

       a,最小化DOM访问次数

       b,如果需要多次访问某个DOM节点,局部变量存储之。

       c,小心处理HTML集合,因为它实时联系这底层文档,把集合长度缓存到一个变量,并在迭代中使用它,如果需要经常操作集合,建议拷贝到数组中。

       d,如果可能的话,使用更快的API,比如querySelectorAll()和firstElementChild()

       e,留意重绘重排,批量修改样式时,离线操作DOM树,使用缓存,并减少访问布局信息的次数。所谓布局信息包括:

              offsetXXXX,scrollXXX,clientXXX,getComputStyle();

        f,使用事件委托来减少事件处理器的数量(事件泵)。

    第六章 快速响应的用户界面

      a,定时器分割长时间任务技巧。

      b,Web Workers 处理耗时后台工作.

    其他章没有特别的体会或者觉得就是这么做的,不存在一般性误导就不再赘述。

  • 相关阅读:
    用bower命令创建项目
    HBuilder打包ios应用
    响应式布局--引入外部样式
    手机中点击链接或button按钮出现黄色边框的解决办法
    通过输入卡号前10位数字判断是哪个银行的卡和类型(储蓄卡or信用卡)
    只允许输入数字和小数点
    python中的实例方法、静态方法、类方法、类变量和实例变量浅析
    python中的实例方法、静态方法、类方法、类变量和实例变量浅析
    python导入csv文件出现SyntaxError问题分析
    python导入csv文件出现SyntaxError问题分析
  • 原文地址:https://www.cnblogs.com/wusong/p/2287051.html
Copyright © 2011-2022 走看看