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 相关文章推荐
firefox事件处理之自动查找event的函数(用于onclick=foo())
Aug 05 Javascript
给超链接添加特效鼠标移动展示提示信息且随鼠标移动
Oct 17 Javascript
JS实现至少包含字母、大小写数字、字符的密码等级的两种方法
Feb 03 Javascript
学习使用bootstrap基本控件(table、form、button)
Apr 12 Javascript
jquery按回车键实现表单提交的简单实例
May 25 Javascript
js控件Kindeditor实现图片自动上传功能
Jul 20 Javascript
Ajax高级笔记 JavaScript高级程序设计笔记
Jun 22 Javascript
JavaScript表单即时验证 验证不成功不能提交
Aug 31 Javascript
一个有意思的鼠标点击文字特效jquery代码
Sep 23 jQuery
Vue组件中prop属性使用说明实例代码详解
May 31 Javascript
JavaScript实现的DOM绘制柱状图效果示例
Aug 08 Javascript
vue视频播放插件vue-video-player的具体使用方法
Nov 08 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
WinXP + Apache +PHP5 + MySQL + phpMyAdmin安装全功略
2006/07/09 PHP
PHP JSON格式的中文显示问题解决方法
2015/04/09 PHP
详解PHP的Yii框架中组件行为的属性注入和方法注入
2016/03/18 PHP
PHP实现类似于C语言的文件读取及解析功能
2017/09/01 PHP
PHP7内核之Reference详解
2019/03/14 PHP
laravel validate 设置为中文的例子(验证提示为中文)
2019/09/29 PHP
JS+ACTIVEX实现网页选择本地目录路径对话框
2013/03/18 Javascript
js固定DIV高度,超出部分自动添加滚动条的简单方法
2013/07/10 Javascript
jquery实现省市select下拉框的替换(示例代码)
2014/02/22 Javascript
Javascript中的关键字和保留字整理
2014/10/16 Javascript
浅析javascript中函数声明和函数表达式的区别
2015/02/15 Javascript
基于bootstrap插件实现autocomplete自动完成表单
2016/05/07 Javascript
nodejs 的 session 简单使用
2016/06/06 NodeJs
jQuery中常用动画效果函数(日常整理)
2016/09/17 Javascript
javascript基础进阶_深入剖析执行环境及作用域链
2017/09/05 Javascript
关于Webpack dev server热加载失败的解决方法
2018/02/22 Javascript
vue + elementUI实现省市县三级联动的方法示例
2019/10/29 Javascript
vue-router 路由传参用法实例分析
2020/03/06 Javascript
浅谈vue权限管理实现及流程
2020/04/23 Javascript
[54:28]EG vs OG 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
python3编写C/S网络程序实例教程
2014/08/25 Python
Python操作MySQL数据库的三种方法总结
2018/01/30 Python
django缓存配置的几种方法详解
2018/07/16 Python
python实现简单多人聊天室
2018/12/11 Python
使用python实现抓取腾讯视频所有电影的爬虫
2019/04/15 Python
python3 map函数和filter函数详解
2019/08/26 Python
Python openpyxl读取单元格字体颜色过程解析
2019/09/03 Python
Python Django中间件,中间件函数,全局异常处理操作示例
2019/11/08 Python
tensorflow -gpu安装方法(不用自己装cuda,cdnn)
2020/01/20 Python
你可能不知道的Python 技巧小结
2020/01/29 Python
全面解析HTML5中的标准属性与自定义属性
2016/02/18 HTML / CSS
Sperry澳大利亚官网:源自美国帆船鞋创始品牌
2019/07/29 全球购物
怎样客观的做好自我评价
2013/12/28 职场文书
校园学雷锋广播稿
2014/10/08 职场文书
人事任命书范本
2015/09/21 职场文书
2015年大学组织委员个人工作总结
2015/10/23 职场文书