1、css文件在head标签中引入,保证在渲染结构的时候进行样式渲染
2、Js文件放在body的底部,确保在渲染dom树的时候不会出现js阻塞
3、函数内的变量是访问速度最快的,全局变量的访问速度是最慢的,减少全局变量的访问
4、函数中使用多次全局变量的时候可以把全局变量赋值给一个新的局部变量
5、闭包会影响内存和性能,减少不必要的闭包函数的使用
6、尽量避免使用对象成员,使用的话同一个函数中避免多次引用对象成员
7、ECMAscript和DOM是两个独立的部分,每次访问都会造成性能的损耗,所以要减少访问DOM的次数
8、选择合适的选择器能提高性能
9、减少会导致重绘和重排版的操作,将多个DOM操作改变合并到一个批次中一次性执行
10、当需要对DOM元素进行多次修改时,一、摘除元素,二、进行修改,三、将元素放回文档,这样只会引发两次重排版
11、减少对布局信息的查询次数,如果需要使用变量
12、重排版的部分越小执行速度越快,大部分的重排版执行时可能出现卡顿
13、使用事件托管的方式
14、for-in循环比其他三种循环开销要大,非必要是不适用for-in
15、Js在运行时会停止线程中的任务,所以js运行任务要尽快结束以免对用户体验造成影响
16、调查发现单个js操作运行的时间最大是100ms,否则算是运行慢的了
17、使用定时器将长时间的js执行脚本成为较短的片段
18、将一个运行时间较长的任务分解成多个小任务
19、多个定时器被同时间创建会影响性能,同一时间只存在一个定时器才不会带来性能问题
20、根据项目需求选择正确的数据格式和与之对应的传输技术
21、尽量使用json轻量的数据形式,XML冗长且解析缓慢
22、创建新对象和新数组的时候使用直接量比非直接量形式创建和初始化更快
23、原生方法总是比JavaScript写的东西要快,尽量使用原生方法
24、合并js文件,减少HTTP请求的数量
25、使用YUI压缩器紧凑处理js文件
26、使用CDN提供js文件,提供性能,管理压缩和缓存
27、使用性能分析器找出脚本运行时慢的部分,并对其进行优化

《高性能javascript》随笔的更多相关文章

  1. "笨方法学python"

    <笨方法学python>.感觉里面的方法还可以.新手可以看看... 本书可以:教会你编程新手三种最重要的技能:读和写.注重细节.发现不同.

  2. 笨方法学python 22,前期知识点总结

    对笨方法学python,前22讲自己的模糊的单词.函数进行梳理总结如下: 单词.函数 含义 print() 打印内容到屏幕 IDLE 是一个纯Python下自带的简洁的集成开发环境 variable ...

  3. 《笨方法学python》随笔

    字符串 字符串可以包含格式化字符%s,只要将格式化的变量放到字符串中,再紧跟着一个百分号 %(percent), 再紧跟着变量名即可.唯一要注意的地方是, 如果你想要在字符串中通过格式化字符放入多个变 ...

  4. LPTHW 笨方法学python 19章

    本章节,我只是把所有的输出加上了自己的注释. #!/usr/bin/env python # -*- coding:utf-8 -*- def cheese_and_crakers(cheese_co ...

  5. 笨方法学python 33课

    今天Eiffel看到了第33章,任务是把一个while循环改成一个函数. 我在把while循环改成函数上很顺利,但是不知道怎么写python的主函数,在参数的调用上也出现了问题. 通过查资料,发现py ...

  6. 《笨方法学Python》加分题32

    注意一下 range 的用法.查一下 range 函数并理解它在第 22 行(我的答案),你可以直接将 elements 赋值为 range(0, 6) ,而无需使用 for 循环?在 python ...

  7. 《笨方法学Python》加分题33

    while-leep 和我们接触过的 for-loop 类似,它们都会判断一个布尔表达式的真伪.也和 for 循环一样我们需要注意缩进,后续的练习会偏重这方面的练习.不同点在于 while 循环在执行 ...

  8. 《笨方法学Python》加分题28

    #!usr/bin/python # -*-coding:utf-8-*- True and True print ("True") False and True print (& ...

  9. 《笨方法学Python》加分题20

    加分练习通读脚本,在每一行之前加注解,以理解脚本里发生的事情.每次 print_a_line 运行时,你都传递了一个叫 current_line 的变量,在每次调用时,打印出 current_line ...

  10. 《笨方法学Python》加分题17

    题目通过前学习的文件操作把一个文件中的内容拷贝到另一个文件中,并使用 os.path.exists 在拷贝前判断被拷贝的文件是否已经存在,之后由用户判断是否继续完成拷贝. 新知识os.path.exi ...

随机推荐

  1. GIL全局解释器锁及协程

    GIL全局解释器锁 1.什么是GIL全局解释器锁 GIL本质是一把互斥锁,相当于执行权限,每个进程内都会存在一把GIL同一进程内的多线程,必须抢到GIL之后才能使用Cpython解释器来执行自己的代码 ...

  2. nginx 设置反向代理

    一.多个路径指向同一ip的不同服务 参考地址:https://www.cnblogs.com/hanmk/p/9289069.html 编辑nginx.conf配置文件,新增加一个server模块,或 ...

  3. IDEA控制台输出中文乱码问题

    IntelliJ IDEA 真的是一款很方便的Java开发工具,但是关于中文乱码这个问题我不得不吐槽,这个编码也弄得这么麻烦干嘛,真想找idea开发者干架,我敢打包票我能在一分钟之内一拳飞过去让他跪下 ...

  4. HDU2650 A math problem——高斯素数

    题意 给你一个数 $a+bj, \ j=\sqrt {-2}$,如果它只能被1.-1.本身和本身的相反数整除,则输出Yes,否则输出No. 分析 高斯整数 $a+bi$ 是素数当且仅当: (1)$a, ...

  5. selenium 加载出新的窗口

    加载出新的窗口的时候 在点击某一个按钮的时候 有些时候会加载出新的页面 此时直接定位是定位不到的 就比如一开始在 1窗口定位 后来跳转到了2窗口,需要在2窗口上定位元素,此时就要先切换到2窗口 这里引 ...

  6. 简述 gevent模块的作用和应用场景。

    当一个greenlet遇到IO操作时,比如访问网络,就自动切换到其他的greenlet,等到IO操作完成, 再在适当的时候切换回来继续执行.由于IO操作非常耗时,经常使程序处于等待状态, 有了geve ...

  7. 【java异常】expected at least 1 bean which qualifies as autowire candidate for this depende

    1.查看接口实现类是否加入注解,如service.repository等 2.查看spring配置文件是否自动扫描包    <context:component-scan base-packag ...

  8. 【Matplotlib】使用速记

    [持续更新] pyplot matplotlib.pyplot is a state-based interface to matplotlib. It provides a MATLAB-like ...

  9. C++ 派生类覆盖重载基类函数

    派生类希望基类重载函数可见,情况有三种: a)派生类中覆盖某个版本,则某个版本可见,全部都覆盖重写,则全部版本可见. b)派生类中一个也不覆盖,则全部基类版本可见. c)派生类需要添加新的重载版本,同 ...

  10. Java 集合系列之五:Map基本操作

    1. Java Map 1. Java Map 重要观点 Java Map接口是Java Collections Framework的成员.但是它不是Collection 将键映射到值的对象.一个映射 ...