在这篇文章叙述的关于Javascript代码优化,其实并没有什么新意,关于这方面的优化,一直都是Nicholas C. Zakas的专利。我在这里将要说的是对当前众多关于Javascript代码优化的方式一个小总结,并尝试去归类各种不同的优化方式,方便于记忆众说纷纭的优化技巧。本人归类的结果如下图所示: Javascript代码优化无非主要围绕:DOM操作、循环、闭包、对象重复出现、对象的声明方式、作用域链、字符串操作、类的声明方式等等。循环、闭包、对象重复出现是从作用域链的角度去优化的;DOM操作主要围绕HTMLCollection、NodeList等来优化;对象的声明方式主要是对象(Object)、数组(Array)、字符串(String)、函数(Function)、正则(RegExp)等内置的对象使用字面量的方式来声明,这个比使用new来实例化相应的对象在性能上要强很多;字符串操作的优化方式主要是通过数组的push和join方法;类的声明方式优化方式主要是分清属性和方法的声明的方式,方法使用prototype的方式来声明;Javascript语言本身的流程操作语句的优化(if、switch、with、eval等等)。 因此,我将Javascript代码优化主要分为六类:DOM“真空”空间、缩短作用域链、字面量声明方式、字符串操作、类声明方式、流程操作语句。下面将逐个叙述:
对@font-face的作用,也是今晚在看这篇博文《@font-face and performance》的时候,才知道使用它可以自定义显示字体。我想在浏览器中加入@font-face的功能是处于一定的情况的,比如使用特殊的字体来显示页面某部分的字体,从而避免采用图片的方式来显示特定字体。出发点是很好的,但是…… 解析@font-face的机制在不同的浏览器下是不同的。 对于@font-face更多的叙述,在上面提到的那篇博文中有了详细的描述。但是对于它提出的说“IE doesn’t render anything in the page until the font file is done downloading if there … 了解更多
昨天接触到这篇文章《Best Practices for Speeding Up Your Web Site》,觉得太经典了,自己不由自主的想要翻译过来,鉴于本人的英语水平,只翻译了其中的某些条目,有错误在所难免。更多的还是推荐浏览原文。 首先的说明的是:优化页面显示速度,就是不管HTML内容多与少,都要尽量在最快的速度显示出来,这就是Front-end engineers首要明确的意图。所以下面所提及的优化方式,都是从这一目的出发的。下面的翻译的一些条目: 1.最小化HTTP request请求。因为一个页面显示所花费的时间很多都是花费在scripts,stylesheets,images,flashs等等,这些都会通过http request来加载,这些大概占用了页面加载时间的70%-80%,因此,减少HTTP request能很大的优化页面的加载速度。 2.使用第三方的代理服务器来加载scripts,stylesheets等等,这能降低本主服务器的负载,比如google ajax api提供的目前流行的js库:jquery,extjs,prototype,MooTools等等 3.在头部声明cache的expire。在用户第一次view页面的时候会加载全部的内容,包括html以及scripts,stylesheets,images等等,设置了cache的expire一方面能使得用户在下次view页面的时候能从缓存里读取一些数据,减少了HTTP Request的请求数,加快页面的显示。不过这要看用户view页面的回头率是否频繁。设置了cache的expire也要适当。一方面能加快加载速度,另一方面也有助于在cache的expire过期的时候使得用户获得页面的最新数据信息。 4.使用压缩技术(Gzip … 了解更多