第一章:加载和执行

  1. 浏览器的JavaScript的引擎是编译器层的优化;
  2. 当浏览器执行JavaScript代码时,不能同时做其他任何事情(单一进程),意味着<script>标签每次出现都霸道地让页面等带脚本的解析和执行(每个文件必须等到前一个文件下载并执行完成才会开始下载),所以头部的JS和CSS用来渲染页面,交互行为(几乎所有)的JS放在<body>底部;
  3. 主流浏览器都允许并行下载JS。
  4. 减少外链脚本数量将会改善性能(合并JS)
  5. 任何网站都可以使用一个把制定文件合并处理后的URL来获取任意数量的文件。
  6. defer属性可延迟脚本(只有IE4 和FF3.5 支持)

第二章:数据访问

  1. JavaScript中有四种基本的数据存取位置: 直接量,变量,数组元素(以数字作为索引),对象成员(以字符床作为索引)。
  2. 访问直接量和局部变量的速度最快,相反,访问数组元素和对象成员相对较慢。
  3. 属性或方法在原型链中的位置越深,访问它的速度也越慢。
  4. 通常来说,可以通过吧常用的对象,数组元素,跨越变量保存在局部变量中来改善JavaScript性能。

第三章:DOM编程

  1. DOM操作在webkit内核的浏览器速度快,其他的浏览器innerHTML执行快。
  2. 访问和操作DOM是现代WEB应用的重要部分。但每次穿越链接ECMAScript和DOM两个岛屿之间的桥梁都会被收取‘过桥费’.
  3. 要留意重回和重排。
  4. 在IE中:hover会降低响应速度。

第四章:算法和流程控制

  1. 避免使用for-in循环,除非需要遍历一个属性数量位置的对象。
  2. 了解栈溢出错误。

第五章:字符串和正则表达式

  1. 回溯既是正则表达式匹配功能的基本组成部分,也是正则表达式的低效之源。

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

  1. 任何JavaScript任务都不应当执行超过100毫秒。
  2. Web workers是新版浏览器支持的特性。
  3. 没有什么JavaScript代码会重要到可以影响用户体验的程度.

第七章:Ajax

  1. JSON是轻量级的数据格式,解析速度快。
  2. 减少请求数,可通过合并JS和CSS,还有IMG。
  3. 缩短页面加载时间,页面主要内容加载完成后,用Ajax获取那些次要的文件。

第八章:编程实践

  1. 大多数的时候,没必要使用eval()和Function(),因此最好避免使用它们。至于setTimeout()和setInterval(),建议传入函数而不是字符串来作为第一个参数。
  2. 在JavaScript中创建对象和数组的方法有多种,但使用对象和数组直接量是最快的方式(对象属性和数组项越多,使用直接量的好处就越明显)。
  3. 不要重复工作:延迟加载;条件预加载.
  4. 多使用原生方法,因为更快。

第九章:构建并部署高性能JavaScript应用

  1. PV(page view)即页面浏览量或点击量。
  2. 减少页面渲染所需的HTTP请求数,特别是针对那些首次访问网站的用户。
  3. JavaScript压缩。
  4. JavaScript缓存。
  5. 使用内容分发网络(CDN)

第十章主要介绍工具:如firebug,YSlow,和一些性能分析.

转载于:https://www.cnblogs.com/liangle/archive/2011/07/22/2512673.html

高性能JavaScript 读书笔记相关推荐

  1. 高性能javascript读书笔记(三.DOM 编程2)

    重绘和重排版 浏览器下载完所有的HTML标记,Javascript,CSS,图片之后,它解析文件并创建两个内部数据结构 DOM树 表示页面结构 渲染树 表示DOM节点如何显示 渲染树中为每个需要显示的 ...

  2. 你不知道的javascript读书笔记3

    概述 这是我看<你不知道的JavaScript(中卷)>中关于类型检查的笔记,供以后开发时参考,相信对其他人也有用. typeof 我们知道js中有七种内置类型:undefined, nu ...

  3. javascript --- [读书笔记] 回流与重绘 前端优化小结

    1. 浏览器渲染原理 请说出: 从用户在浏览器地址输入网址,到看整个页面,中间都发生了哪些事情? HTTP请求阶段 HTTP响应阶段 浏览器渲染阶段 1.1 可能用到的知识 1.1.1 进程 Proc ...

  4. 高性能MySQL读书笔记 (五)

    1. 优化服务器设置 MySQL有大量的可以修改的参数,但不应该随便修改.应该将更多时间花在schema的优化,索引,查询设计上 配置文件路径: 通常在/etc/my.cnf 不建议动态修改变量,因为 ...

  5. 你不知道的javaScript读书笔记(六)

    this全面解析 笔记: this的运行机制: (1) this是在运行时绑定的,并不是在编写时绑定,它的上下文取决于函数调用时的各种条件.this的绑定和函数声明的位置没有任何关系,只取决于函数的调 ...

  6. JavaScript读书笔记-03

    数据类型 JavaScript是弱类型的编程语言,字符串变量保存了一个字符串,稍后又将它当做数值是可以的, Var myVar = "hello"; myVar = 123; my ...

  7. Javascript读书笔记(六)函数作用域,声明提前,作用域链,闭包

    参照内容来自<JavaScript权威指南>,<JavaScript高级程序设计> 函数作用域 类似C语言的编程语言中有块级作用域,JavaScript中没有块级作用域,取而代 ...

  8. JavaScript读书笔记(三)布尔值,null,undefined,全局对象,包装对象

    参照内容来自<JavaScript权威指南> 布尔值 任意JavaScript的值都可以转换为布尔值. 部分值会被转换为false,其他转换为true. 会被转换为false的有:(1)u ...

  9. HeadFirst JavaScript读书笔记

    1. 存储数据--HeadFirst JavaScript第二章 2. 探索客户端--HeadFirst JavaScript第三章

最新文章

  1. R语言ggplot2可视化:组合箱图(boxplot)和直方图(histogram)输出组合可视化结果
  2. pyqt 槽任意参数_PyQt5快速入门(二)PyQt5信号槽机制
  3. C#访问SQLServer增删改查代码实例
  4. 一文了解YOLO-v4目标检测
  5. 大数据之路- Hadoop环境搭建(Linux)
  6. 《移动应用开发》实验报告——疫情地图
  7. CentOS7 64位下MySQL5.7安装与配置(YUM)
  8. c语言小饭店等位就餐程序,C语言程序设计 C语言程序设计 3.C语言程序设计教案全部.doc...
  9. tcp_tw_reuse、tcp_tw_recycle 使用场景及注意事项
  10. C#设计模式之7-桥接模式
  11. 一个堆排我竟弄了 4 个动画
  12. (原創) 如何在Ubuntu上啟動ADSL連線? (OS) (Linux) (Ubuntu)
  13. 通过批处理来运行python程序
  14. Python实践基于直方图的梯度提升集成方法
  15. 软考项目管理师考试随笔
  16. springboot如何快速访问templates下的html
  17. rapidxml 给节点赋值时出现乱码问题
  18. 艾艾贴常用的数据类型转换
  19. 88E1111 100BASE-T百兆工程(part2--完)
  20. Petya and Countryside

热门文章

  1. CF-778 C.Peterson Polyglot (Trie合并)
  2. python3创建一个游戏窗口
  3. go语言1.4版本将支持面向android开发,[翻译]Go语言1.4版本将支持面向Android开发
  4. Linux下C++访问MySQL数据库
  5. 4.3 欠拟合与过拟合
  6. [攻防世界 pwn]——pwn-100
  7. css宋体代码_前端开发必备的CSS命名规范与常用CSS代码集合
  8. c++ static allocator
  9. 深入了解DefaultMessageListenerContainer
  10. c# thread 编程