精品主題,實戰(zhàn)科普,最新行業(yè)熱點話題,隨時掌握云上咨訊。
一、 圖像優(yōu)化
圖像基礎(chǔ)知識
gif: 適用于動畫效果,例如提示的滾動條圖案 Web前端性能優(yōu)化教程 Web前端性能優(yōu)化 Web優(yōu)化 圖像優(yōu)化
jpg: 是一種使用有損壓縮的圖片格式,它將圖片的每個像素分解成8*8的柵格,然后對每個柵格的數(shù)據(jù)進行壓縮處理,通過特殊的算法用附近的顏色填充柵格,隱藏細節(jié)。用戶可以設(shè)置質(zhì)量級別,從0到100,數(shù)字越少圖片質(zhì)量就越差。
png:是一種使用無損壓縮的圖片格式,它將圖片上出現(xiàn)的顏色進行索引,保留在“調(diào)色板”上,PNG在顯示圖像的時候就會調(diào)用調(diào)色板的顏色去填充相應(yīng)的位置。png又分為png8,png24和png32;png8表示支持2^8個種顏色,通常情況下png8是最通用的web圖片格式。
選擇jpg還是png
對比jpg和png的特點,不同的圖像使用不同的格式能得到最佳壓縮效果。對于層次豐富顏色較多的圖像,使用jpg更好,因為為了很好的顯示這種圖像,png將使用調(diào)色板顏色更為豐富的png24,這樣圖片大小會比jpg大。而對于顏色簡單對比強烈的圖像,使用png更好,因為png使用較少的調(diào)色板顏色就可以滿足顯示效果,而且得到的圖片相對也比較小,而jpg是有損的,在清晰的顏色過渡周圍會有大色塊,影響顯示效果。
將png24|32轉(zhuǎn)化為png8
png圖片的優(yōu)化的很重要的一步:有些png24|32圖片本身顏色較為簡單,將其轉(zhuǎn)變?yōu)?/span>png8得到的顯示效果很類似,但卻能極大地減少圖片的大小。這一步可以通過使用工具pngGo來完成,這是一個完全免費的工具,而且可以根據(jù)需要設(shè)置png所需要的調(diào)色板顏色數(shù),得到最大的壓縮效果。
使用smushit.it在線無損化壓縮
png格式將圖像信息保存在“塊”中,對于web顯示來說,大部分的“塊”都并非必要,所以優(yōu)化策略可以將它們安全地刪除。雅虎的YSlow提供了一個在線的無損化壓縮工具smushit.it,不過基本上假如已經(jīng)將圖片轉(zhuǎn)變?yōu)?/span>png8,使用smushit.it能壓縮的空間已經(jīng)很小了,不過對于追求極致性能的web來說,還是值得一試的。
二、優(yōu)化Cookie
什么是Cookie
Cookie是存儲在客戶端的一小段文本信息,伴隨著用戶請求在瀏覽器和服務(wù)器之間傳遞。Cookie除了核心對象key-value外,還有max-age,path,domain和httponly屬性。httponly屬性標識一個客戶端javascript能否操作這個Cookie;max-age表示緩存時間,單位為秒;domain代表域名,例如設(shè)置為.cnblog.com,則i.cnblogs.com也可以訪問這個Cookie,如果設(shè)置為i.cnblogs.com,則image.cnblogs.com這個域名下的資源將不能訪問這個Cookie;path代表文件路徑,默認為/,表示可以該domain下的所有資源可以訪問這個Cookie。瀏覽器對單個Cookie大小限制不超過4KB;對于同一域名下Cookie的數(shù)量也有限制,一般不允許超過50個。
非持久Cookie和持久Cookie
假如Http請求響應(yīng)頭部Set-Cookie的時候沒有給Cookie添加一個過期時間,則它的默認過期時間為當(dāng)前瀏覽會話結(jié)束,既退出瀏覽器這個Cookie就無效了,這個Cookie就叫做非持久Cookie,因為是存儲在瀏覽器進程的內(nèi)存中的。
而如果給Cookie添加了一個過期時間,則Cookie信息將存儲到硬盤上,即使瀏覽器退出這個Cookie還是存在的。只要Cookie未被清除且還在過期時間以內(nèi),這個Cookie就會在訪問對應(yīng)域名的時候發(fā)送給服務(wù)器。
減少Cookie的體積
由于Cookie在訪問對應(yīng)域名下的資源的時候都會通過Http請求發(fā)送到服務(wù)器,所以通過合理地設(shè)計Cookie,減少Cookie的體積,能夠減少Http請求報文的大小,提高響應(yīng)速度。
通過使用不同的主機減少Cookie的使用
Cookie在訪問對應(yīng)域名下的資源的時候都會通過Http請求發(fā)送到服務(wù)器,但是在訪問一些資源(例如js腳本,css和圖片)的時候,大多數(shù)情況下這些Cookie是多余的,所以我們可以通過使用不同的主機來存儲一些靜態(tài)資源,例如用專門的主機來存儲圖片,這樣訪問這些資源的時候就不會發(fā)送多余的Cookie,從而提高響應(yīng)速度。