1

性能是一个网站成功的关键,然而,如今日益丰富的内容和大量使用AjaxWeb应用程序已迫使浏览器达到其处理能力的极限,这就迫使我们需要一些技术来优化我们网站的性能!我相信已经有不少人看过了Yahoo出品的,震惊Web开发界的,雅虎14条军规了,但我们频繁地看见这类的文章,却很少实践。

该优化什么?主要可以分为三个部分:

1.javascript
现在的网站几乎都有它的影子,它如此重要,我们必须好好利用它!js优化又包括:

a.查询优化
b.循环优化
c.字符串拼接,类型转化优化
d.语句优化
e.DOM操作优化,事件代理
d.算法优化
f.内存优化
g.可维护性优化
h.ajax缓存
i.加载优化
....
2.网络
要不是宿舍2M的小水管宽带,打开网页老半天,我也不会管这些优化。毕竟中国宽带网速还在龟速发展,坐等李克强总理把那些电信商们都搞定!这里的网络优化也包括了对服务器和静态资源等的优化,现在还是看看如何让我们的网页更快的打开吧:

a.缓存技术
b.负载均衡
c.压缩
d.优化协议(HTTP,TCP/IP)
e.CDN

我也不知道还有什么,后面慢慢补充吧 ...

3.浏览器
浏览器有什么功能?显示咯,点击咯,缩放咯,滚动咯。一个浏览器至少实现三个常驻线程:javascript引擎线程,GUI渲染线程,浏览器事件触发线程,而计算机分配给web浏览器的可用内存数量较少,因此我们需要减少引起浏览器内存增加的操作!如何优化?

a.渲染优化
b.减少repaint/reflow
c.函数节流
d.CSS优化
...

暂时先给定这些,细节的后面补充。。。

如何权衡优化?优化原则?

优化的目的是希望降低程序的整体开销。虽然在程序中有许多因素可以优化,但通常人们会认为这个开销就是程序的执行时间,其实我们更应该将重点放在对程序整体开销最大的那个部分。
假如:我们通过性能分析得到程序的4个模块的开销:

clipboard.png

我们得明白,即使能以某种方式使模块B的开销减少一半,其实也只是降低整体开销的2%。如果能将模块A的开销减少10%,却会得到更好的效果,所以优化那些开销不大的组件收效甚微。


ouou
8.7k 声望472 粉丝

进击的前端er...