梳理:提高前端性能方面的處理以及不足
by zhangxinxu from http://www.zhangxinxu.com
本文地址:http://www.zhangxinxu.com/wordpress/?p=3152
一、清明時節雨紛紛
明兒個清明節了,也是我在現在公司三年合同到期的時間,本來計劃換個地方的,無奈面試智商低、個性不收斂、略顯隨性,面了兩家上海心儀公司,都在最後被拒了。我跟總監說了這事,他說我是挺虧的(畢竟不是因爲技術能力不足被拒),他建議我把棱角再磨掉些。要磨嗎?
先不說這個,畢竟我還年輕,機會還會有,所以當作擴展眼界、自我學習的好機會。return;
面試時候,有被提問網站性能優化的問題。被問到這個問題的時候,第一反應是,這是我自認爲做的不錯的地方、我做了很多優化,於是撲面而來很多信息,但由於之前沒有系統梳理過,很多非常基本的都漏了(可能潛意識覺得這是常識,沒什麼好說的),其他的技術點也有些亂,我自己覺得是糟糕的回答。
於是,纔有今天這篇文章,自己梳理下,順便跟大家交流交流。//zxx: 本文所述的優化以及問題都可以從訂餐小祕書上找到。
二、最最基本的
- CSS頂部, JS底部
- YUI compressor/Gzip
- CDN 有
- 必要的CSS Sprite
- Ajax可緩存
以上沒什麼好說的。
三、CSS渲染、頁面重繪以及迴流
四、降低靜態資源請求數
- 開始提到的CSS sprite,目前因降低後期維護成本,sprite的規模有所降低
- 字符與圖形生成,如: 該圖效果之前有介紹。
- CSS圖形生成,如三角:
- CSS模擬,如幾像素的投影效果
- CSS3技術,例如漸變效果CSS3
gradient
+filter
。投影效果CSS3box-shadow
+filter
blur。 - base64 url技術,例如虛點效果:
五、資源的複用
- 團隊CSS樣式庫,快速構建網站 – Bootstrap有點類似我們這個味道,
.span1
,.span2
,.span3
,.span4
,.span4
,...
- 高寬自適應 – 無論選項卡、按鈕等還是各個大小模塊都是高寬自適應的,以適用於各種環境、需求
- CSS3 font-face技術 – 純色圖標大小以及顏色可以隨意控制,增強複用
六、js/HTML交互相關
七、瀏覽器自身的潛力
ol
列表的數字、table
的自適應性<strong>
<h1-6>
粗體效果form
相關特性,元素自身特性實現submit
以及reset
等效果- HTML5
placeholder
以及其他N多現代瀏覽器支持特性等
八、問題所在
- 沒有模塊加載機制,20個模塊腳本參雜在一起,一個頁面可能只使用了4個。
- 圖片的拉伸很常見
- 各種廣告跟蹤代碼,把網站前端性能拉低了一個等級。
- HTML沒有頂邊顯示,去除冗餘空白字符以及註釋,因此HTML頁面大小未優化。不難,程序那邊一直沒做相關處理。
- 頭部無用的一段專爲IE6的
script
輸出,之前曾做過處理,只IE6輸出的,後來因爲不同城市不同站等原因,後臺那邊懶得折騰了。