
高性能Javascript
Daisyiko
这个作者很懒,什么都没留下…
展开
-
高性能Javascript第一章加载和执行
笔记: 多数浏览器使用单一线程处理UI刷新和javascript脚本执行,同一个时刻只能做一件事 <script>标签出现,导致页面的下载和渲染都必须停下来等待脚本执行完毕。 遇到<scirpt>必须先执行javascript代码,再继续解析和渲染页面。同时在使用src属性加载也是如此。 IE8,FireFox3.5,safari4,chrome2都允许并行下载ja...原创 2018-12-08 22:36:01 · 236 阅读 · 0 评论 -
高性能Javascript第四章算法和流程控制
笔记: for-in可以枚举任何对象的属性名。循环体每次运行,prop变量被赋值为object的一个属性名,直到所有的属性遍历完成才返回。 循环的可选因素:每次迭代处理的事务,迭代的次数。 减少迭代的次数-达夫设备 if-else适用于判断两个离散值或几个不同的值域。当判断多于两个离散值时,switch是更佳的选择。 递归,可能会遇到调用栈的大小限制。 递归有直接递归,隐式递归。 ...原创 2019-02-27 20:43:31 · 193 阅读 · 0 评论 -
高性能Javascript第五章字符串和正则表达式
笔记: regular expression. regex 字符串连接通常通过一个循环 str+="one"+"two" 过程:在内存中存储一个临时字符串,连接后的字符串onetwo被赋值给该字符串,临时字符串与str当前的值相连接,结果赋值给str 赋值表达式由str开始作为基础。 数组项合并 Array.prototype.join String.prototype.concat...原创 2019-02-28 19:48:31 · 149 阅读 · 0 评论 -
高性能Javascript第二章加数据存取
笔记: 数据存取的位置:字面量,本地变量,数组元素,对象成员。 每一个javascript函数都表示为一个对象。 内部属性[[scope]]包含了一个函数被创建的作用域中对象的集合。这个集合被称为函数的作用域链,它决定哪些数据能被函数访问。 执行函数时会创建一个称为执行环境的内部对象。 多次调用同一函数就会导致创建多个执行环境,当函数执行完毕,执行环境被销毁。 函数执行过程中,每遇到一...原创 2019-02-25 17:09:20 · 134 阅读 · 0 评论 -
高性能Javascript第九章构建并部署高性能javascript应用
笔记: Apache Ant软件自动化工具类似make引用属性:${} 网站提速指南中第一条也是最重要的一条规则,就是减少页面渲染需要的HTTP数。 Apache Ant合并多个文件的concat,特定依赖关系连接,关系确定,使用filelist/fileset 预处理Javscript Javascript压缩,运行无关的进行剥离。 YUI Compressor局部变量替...原创 2019-03-05 11:32:37 · 234 阅读 · 0 评论 -
高性能Javascript第三章DOM编程
笔记: 访问DOM元素是有代价的,最坏的情况是在循环中访问或者修改元素,尤其是对HTML元素集合循环操作。 换一种效率更高的方法,用局部变量存储修改中的内容,在循环结束后一次性写入。 通用经验法则是:减少访问DOM的次数,把运算尽量留在ECMAScript这一端处理。 如果在一个对性能有着苛刻要求的操作中更新一大段HTML,推荐使用innerHtml,因为它绝大部分浏览器中都运行得更快。但...原创 2019-02-26 18:23:52 · 257 阅读 · 0 评论 -
高性能Javascript第六章快速响应的用户界面
笔记: 用于执行javascript和更新用户界面的进程通常被称为“浏览器UI线程”。 UI线程工作基于一个简单的队列系统,任务会被保存到队列中直到进程空闲。一旦空闲,队列中关系爱一个任务就被重新提取出来并运行。 浏览器限制了JS任务的运行时间,调用栈大小限制和长时间运行脚本限制。 单个JS操作花费的总时间最大值不应超过100毫秒 可以通过定时器来让出时间片段。 setTimeout(...原创 2019-03-03 12:59:59 · 251 阅读 · 0 评论 -
高性能Javascript第七章ajax
笔记: ajax异步的方式在客户端和服务端之间传输数据,可以用一个HTTP请求就获取整个页面的资源。 与服务器通信而无须重载页面的方法。 五种常用技术用于服务器请求数据:XMLHttpRequset,Dynamaic script tag insertion,iframs,Comet,Multipart XHR XHR使用: 动态脚本注入:用JS创建一个script,不能设置请求的头...原创 2019-03-03 13:20:43 · 164 阅读 · 0 评论 -
高性能Javascript第八章编程实践
笔记: 避免双重求值:eval,Function,setTimeout,setInterval 大多数没必要eval,Function 双重求值代价昂贵。 使用Object/Array直接量是最快的方式。 避免重复工作,浏览器探测。 延迟加载。 条件预加载。 预加载适用于一个函数马上就要用到,整个生命周期频繁出现的场合。 位操作 。toString(2) 原生方法:Math. ...原创 2019-03-03 13:29:20 · 207 阅读 · 0 评论