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. uiautomatorviewer

    uiautomatorviewer路径 /usr/local/Caskroom/android-platform-tools/29.0.1/tools/bin

  2. JavaScript 实用工具库 : lodashjs

    首页地址:https://www.lodashjs.com/

  3. 【Linux】查看端口和进程

    netstat -tunlp ps -ef|grep process_name

  4. odoo技术笔记

    接触odoo将近半年: 学到的知识点整理如下:

  5. Jupyter-notebook安装问题及解决

    两种方式: 1.pip install jupyter notebook 2.安装Anaconda 1.pip安装 通过命令行pip,要注意是在哪个虚拟环境,安装好后jupyter notebook所 ...

  6. [RN] React Native 使用 图片预览和放大 插件 react-native-image-zoom-viewer 过程中,放大报错问题

    React Native 使用 图片预览和放大 插件 react-native-image-zoom-viewer 过程中,放大报错问题 报错如下: Cannot record touch end w ...

  7. 洛谷p1747好奇怪的游戏题解

    题目 永远不要怀疑劳动人民的智慧! 把快读里最后的return直接返回零的 我已经不是第一次写错了! 我要是再写错我就****** 主要是逆向思维,把从两个点往(1, 1)走想成从(1, 1)点往这两 ...

  8. servlet中的doGet()与doPost()以及service()的用法

    doget和dopost的区别 get和post是http协议的两种方法,另外还有head, delete等 1.这两种方法有本质的区别,get只有一个流,参数附加在url后,大小个数有严格限制且只能 ...

  9. Oracle_PLSQL导出导入dmp文件

    地址:F:\app\duling\product\11.2.0\dbhome_1\BIN\imp.exe ----------------------------------------------- ...

  10. Spring Security教程(四)

    在前面三个博客的例子中,登陆页面都是用的Spring Security自己提供的,这明显不符合实际开发场景,同时也没有退出和注销按钮,因此在每次测试的时候都要通过关闭浏览器来注销达到清除session ...