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中的对象 推荐
Jan 09 Javascript
JS代码同步文本框内容的实例方法
Jul 12 Javascript
深入理解javascript动态插入技术
Nov 12 Javascript
jQuery插件扩展extend的简单实现原理
Jun 24 Javascript
Bootstrap学习系列之使用 Bootstrap Typeahead 组件实现百度下拉效果
Jul 07 Javascript
jquery常用的12个小功能
Jul 22 Javascript
ion content 滚动到底部会遮住一部分视图的快速解决方法
Sep 06 Javascript
基于jQuery和Bootstrap框架实现仿知乎前端动态列表效果
Nov 09 Javascript
js以分隔符分隔数组中的元素并转换为字符串的方法
Nov 16 Javascript
基于BootStrap实现简洁注册界面
Jul 20 Javascript
Vue自定义指令使用方法详解
Aug 21 Javascript
JavaScript实现HTML导航栏下拉菜单
Nov 25 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下连接ftp实现文件的上传、下载、删除文件实例代码
2010/06/03 PHP
一个显示某段时间内每个月的方法 返回由这些月份组成的数组
2012/05/16 PHP
PHP的关于变量和日期处理的一些面试题目整理
2015/08/10 PHP
PHP登录验证码的实现与使用方法
2016/07/07 PHP
PHP实现二维数组中的查找算法小结
2018/06/09 PHP
js GridView 实现自动计算操作代码
2009/03/25 Javascript
jquery cookie插件代码类
2009/05/26 Javascript
JavaScript/jQuery 表单美化插件小结
2012/02/14 Javascript
js实现页面a向页面b传参的方法
2016/05/29 Javascript
Javascript6中字符串的四个新用法分享
2016/09/11 Javascript
React组件生命周期详解
2017/07/03 Javascript
NodeJs实现定时任务的示例代码
2017/12/05 NodeJs
vuex进阶知识点巩固
2018/05/20 Javascript
jQuery实现简易QQ聊天框
2020/02/10 jQuery
Python数据结构之Array用法实例
2014/10/09 Python
Python中使用Tkinter模块创建GUI程序实例
2015/01/14 Python
Python中使用装饰器和元编程实现结构体类实例
2015/01/28 Python
Python判断变量是否为Json格式的字符串示例
2017/05/03 Python
flask + pymysql操作Mysql数据库的实例
2017/11/13 Python
Python搜索引擎实现原理和方法
2017/11/27 Python
python图像和办公文档处理总结
2019/05/28 Python
对python3 sort sorted 函数的应用详解
2019/06/27 Python
python 提取文件指定列的方法示例
2019/08/07 Python
python读取raw binary图片并提取统计信息的实例
2020/01/09 Python
利用Python将图片中扭曲矩形的复原
2020/09/07 Python
CSS实现聊天气泡效果
2020/04/26 HTML / CSS
html5-canvas中使用clip抠出一个区域的示例代码
2018/05/25 HTML / CSS
美国宠物用品网站:Value Pet Supplies
2018/03/17 全球购物
网络工程系信息安全技术专业大学生求职信
2013/10/22 职场文书
生产部管理制度
2014/01/31 职场文书
遗嘱继承公证书
2014/04/09 职场文书
优秀家长自荐材料
2014/08/26 职场文书
2015年教师节感言
2015/08/03 职场文书
2015教师个人年度工作总结
2015/10/23 职场文书
感谢信的技巧及范例
2019/05/15 职场文书
微信小程序APP的事件绑定以及传递参数时的冒泡和捕获
2022/04/19 Javascript