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里使用Dom操作Xml
Sep 20 Javascript
Input 特殊事件onpopertychange和oninput
Jun 17 Javascript
javascript显示用户停留时间的简单实例
Aug 05 Javascript
js中的referrer返回上一页使用介绍
Sep 26 Javascript
javascript实现的登陆遮罩效果汇总
Nov 09 Javascript
详解javascript的变量与标识符
Jan 04 Javascript
VueJS 集成 Medium Editor的示例代码 (自定义编辑器按钮)
Aug 24 Javascript
JQuery搜索框自动补全(模糊匹配)功能实现示例
Jan 08 jQuery
小程序扫描普通链接二维码跳转小程序指定界面方法
May 07 Javascript
原生JavaScript之es6中Class的用法分析
Feb 23 Javascript
vue项目中播放rtmp视频文件流的方法
Sep 17 Javascript
JS中锚点链接点击平滑滚动并自由调整到顶部位置
Feb 06 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 iconv() : Detected an illegal character in input string
2010/12/05 PHP
解析PHP自带的进位制之间的转换函数
2013/06/08 PHP
PHP中define() 与 const定义常量的区别详解
2019/06/25 PHP
又一个图片自动缩小的JS代码
2007/03/10 Javascript
JS input 数字验证代码
2009/07/30 Javascript
jquery maxlength使用说明
2011/09/09 Javascript
jQuery获取和设置表单元素的方法
2014/02/14 Javascript
js实现浏览器窗口大小被改变时触发事件的方法
2015/02/02 Javascript
触屏中的JavaScript事件分析
2015/02/06 Javascript
jquery背景跟随鼠标滑动导航
2015/11/20 Javascript
jQuery对象与DOM对象转换方法详解
2016/05/10 Javascript
javascript 判断是否是微信浏览器的方法
2016/10/09 Javascript
很棒的一组js图片轮播特效
2017/01/12 Javascript
在Vue中使用echarts的实例代码(3种图)
2017/07/10 Javascript
angular4自定义组件详解
2017/09/28 Javascript
Jquery和CSS实现选择框重置按钮功能
2018/11/08 jQuery
vue实现短信验证码登录功能(流程详解)
2019/12/10 Javascript
简单了解前端渐进式框架VUE
2020/07/20 Javascript
python创建线程示例
2014/05/06 Python
用Python实现一个简单的能够发送带附件的邮件程序的教程
2015/04/08 Python
Python代码解决RenderView窗口not found问题
2016/08/28 Python
python解决网站的反爬虫策略总结
2016/10/26 Python
Python实现将SQLite中的数据直接输出为CVS的方法示例
2017/07/13 Python
python 处理dataframe中的时间字段方法
2018/04/10 Python
十行代码使用Python写一个USB病毒
2019/06/21 Python
Desigual英国官网:在线购买原创服装
2018/03/09 全球购物
网络工程师职业规划
2014/02/10 职场文书
环保倡议书500字
2014/05/15 职场文书
第一批党的群众路线教育实践活动总结报告
2014/07/03 职场文书
寻找最美家庭活动方案
2014/08/20 职场文书
农民工工资支付承诺书
2015/05/04 职场文书
工作态度不好检讨书
2015/05/06 职场文书
导游词之安徽醉翁亭
2020/01/10 职场文书
Python使用永中文档转换服务
2022/05/06 Python
pandas中pd.groupby()的用法详解
2022/06/16 Python
SpringBoot使用ip2region获取地理位置信息的方法
2022/06/21 Java/Android