High Performance JavaScript(高性能JavaScript)读书笔记分析


Posted in Javascript onMay 05, 2011

第一章:加载和执行

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

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

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

避免使用for-in循环,除非需要遍历一个属性数量位置的对象。
了解栈溢出错误。
第五章:字符串和正则表达式

回溯既是正则表达式匹配功能的基本组成部分,也是正则表达式的低效之源。
第六章:快速响应的用户界面

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

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

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

PV(page view)即页面浏览量或点击量。
减少页面渲染所需的HTTP请求数,特别是针对那些首次访问网站的用户。
JavaScript压缩。
JavaScript缓存。
使用内容分发网络(CDN)
第十章主要介绍工具:如firebug,YSlow,和一些性能分析.

Javascript 相关文章推荐
javascript实现可改变滚动方向的无缝滚动实例
Jun 17 Javascript
Jquery实现的tab效果可以指定默认显示第几页
Oct 16 Javascript
jQuery实现左右切换焦点图
Apr 03 Javascript
JavaScript变量的作用域全解析
Aug 14 Javascript
JavaScript事件类型中焦点、鼠标和滚轮事件详解
Jan 25 Javascript
js实现目录链接,内容跟着目录滚动显示的简单实例
Oct 15 Javascript
微信小程序 定义全局数据、函数复用、模版等详细介绍
Oct 27 Javascript
面包屑导航详解
Dec 07 Javascript
微信小程序 select 下拉框组件功能
Sep 09 Javascript
vue3.0中使用element的完整步骤
Mar 04 Vue.js
国庆节到了,利用JS实现一个生成国庆风头像的小工具 详解实现过程
Oct 05 Javascript
WebRTC记录音视频流(web技术分享)
Feb 24 Javascript
jQuery bind事件使用详解
May 05 #Javascript
javascript 拖动表格行实现代码
May 05 #Javascript
小试JQuery的AutoComplete插件
May 04 #Javascript
为你的网站增加亮点的9款jQuery插件推荐
May 03 #Javascript
通过jquery的$.getJSON做一个跨域ajax请求试验
May 03 #Javascript
Jquery 绑定时间实现代码
May 03 #Javascript
jqgrid 简单学习笔记
May 03 #Javascript
You might like
php数组添加与删除单元的常用函数实例分析
2015/02/16 PHP
获取任意Html元素与body之间的偏移距离 offsetTop、offsetLeft (For:IE5+ FF1 )[
2006/12/22 Javascript
Javascript 判断客户端浏览器类型代码
2010/03/01 Javascript
固定网页背景图同时保持图片比例的思路代码
2013/08/15 Javascript
js动态调用css属性的小规律及实例说明
2013/12/28 Javascript
js在输入框屏蔽按键,只能键入数字的示例代码
2014/01/03 Javascript
JS中怎样判断undefined(比较不错的方法)
2014/03/27 Javascript
浅谈重写window对象的方法
2014/12/29 Javascript
JavaScript控制按钮可用或不可用的方法
2015/04/03 Javascript
浅析jQuery中使用$所引发的问题
2016/05/29 Javascript
浅析Nodejs npm常用命令
2016/06/14 NodeJs
Bootstrap基本组件学习笔记之列表组(11)
2016/12/07 Javascript
Ajax 加载数据 练习代码
2017/01/05 Javascript
JS+jQuery实现注册信息的验证功能
2017/09/26 jQuery
使用Karma做vue组件单元测试的实现
2020/01/16 Javascript
javascript 代码是如何被压缩的示例代码
2020/05/06 Javascript
JavaScript中while循环的基础使用教程
2020/08/11 Javascript
python实现向ppt文件里插入新幻灯片页面的方法
2015/04/28 Python
Python基于ThreadingTCPServer创建多线程代理的方法示例
2018/01/11 Python
Python2与Python3的区别实例总结
2019/04/17 Python
浅谈pandas dataframe对除数是零的处理
2020/07/20 Python
HTML5添加禁止缩放功能
2017/11/03 HTML / CSS
Mankind西班牙男士护肤品网站:购买皮肤护理、护发和剃须
2017/04/27 全球购物
Vrbo英国:预订度假屋
2020/08/19 全球购物
如何将整数int转换成字串String
2014/03/21 面试题
为什么group by 和order by会使查询变慢
2014/05/16 面试题
小学少先队活动方案
2014/02/18 职场文书
《云雀的心愿》教学反思
2014/02/25 职场文书
爱护公共设施标语
2014/06/24 职场文书
新课培训心得体会
2014/09/03 职场文书
销售员试用期自我评价
2014/09/15 职场文书
2014年环卫工作总结
2014/11/22 职场文书
2015年转正工作总结范文
2015/04/02 职场文书
2016春季幼儿园大班开学寄语
2015/12/03 职场文书
浅谈自定义校验注解ConstraintValidator
2021/06/30 Java/Android
spring boot项目application.properties文件存放及使用介绍
2021/06/30 Java/Android