不用再擔(dān)心JS文件限制你的速度
經(jīng)常聽到客戶問這樣的問題:你們幫我看看我的網(wǎng)站怎么打開那么慢啊,是不是中毒了?
然后我們就去測試他的網(wǎng)站,發(fā)現(xiàn)問題簡單的很:每個網(wǎng)頁的開頭有著不計其數(shù)的外聯(lián)文件。樣式表還好,最多的不外乎幾十K??膳碌氖荍S文件,這些個企業(yè)的負(fù)責(zé)人都不是IT專業(yè)人員,兼職管理企業(yè)的網(wǎng)站,喜歡迎合領(lǐng)導(dǎo)搞些特效什么的,又不知道優(yōu)化。什么JQUERY,特效,驗證等等,全都羅列在head里,林林總總快一千k了。
今天說說給他們做優(yōu)化的那些簡單的手段吧。
一、給JS文件減肥。
有的人為了給網(wǎng)站增加炫目效果,往往會使用一些JS效果代碼,這在上個世紀(jì)似乎還很流行,對于現(xiàn)在來說,最好在用戶體驗確實需要的情況下,使用這些東西。至于希望給自己的JS文件減肥的童鞋,網(wǎng)上的工具里有很多,在百度一搜就會有應(yīng)用,功能很全。把一個已經(jīng)完善的JS文件進(jìn)行壓縮是主流網(wǎng)站的一個慣性動作,因為壓縮量確實很可觀。以下是幾個比較好的壓縮工具:
YUI壓縮工具 (http://developer.yahoo.com/yui/compressor/)
Dean Edwards Packer (http://dean.edwards.name/packer/)
JSMin (http://crockford.com/JavaScript/jsmin)
二、盡量減少DOM訪問
使用JavaScript訪問DOM元素很容易,代碼更容易閱讀,但是速度很慢。下面介紹幾個要點:限制使用JavaScript來修飾網(wǎng)頁布局,把針對訪問元素的引用緩存起來。有時,當(dāng)你的網(wǎng)站依賴大量的DOM改動時,就應(yīng)該考慮限制你的標(biāo)記。這是改用HTML5、舍棄那些原來的XHTML和HTML4的一個充分理由。
三、使用適當(dāng)?shù)腃DN
現(xiàn)在許多網(wǎng)頁使用內(nèi)容分發(fā)網(wǎng)絡(luò)(CDN)。它可以改進(jìn)你的緩存機(jī)制,因為每個人都可以使用它。它還能為你節(jié)省一些帶寬。你很容易使用ping檢測或使用Firebug調(diào)試那些服務(wù)器,以便搞清可以從哪些方面加快數(shù)據(jù)的速度。選擇CDN時,要照顧到你網(wǎng)站那些訪客的位置。記得盡可能使用公共存儲庫。
四、把不著急用的JS文件放到頁面的底部
當(dāng)更多地考慮用戶對網(wǎng)站的速度體驗時,在頁面底部裝入JS文件是一個非常好的做法。易用性和用戶放在首位,JavaScript放在末位。對于追求技術(shù)的很多前端人員來說,這似乎很難接受,但也應(yīng)該有所準(zhǔn)備,有些用戶會禁用JavaScript。
五、在頭部以異步方式裝入JS
為了統(tǒng)計網(wǎng)站的各種信息,我們通常會借助網(wǎng)上提供的免費(fèi)統(tǒng)計功能,比如cnzz的統(tǒng)計,比如google分析,比如百度統(tǒng)計,關(guān)鍵的是,好多統(tǒng)計為了保證統(tǒng)計效果,可能會建議用戶將統(tǒng)計代碼放在頁面的頭部。如果用戶選擇這么做,可能會在統(tǒng)計代碼請求數(shù)據(jù)不穩(wěn)定時給他的網(wǎng)站用戶帶來非常不好的體驗。不過,目前大部分統(tǒng)計服務(wù)都允許你以異步方式載入放在頭部的JS文件,在很大程度上解決了這一問題。
六、把你的JavaScript打包成PNG文件
這個辦法是最近在網(wǎng)上看到老外的一種做法,思維很特別,還沒有嘗試過,有興趣的朋友可以嘗試一下。具體是這樣:把你的JS和CSS添加到圖片的末尾,然后用CSS來裁切,通過一次HTTP請求來獲得應(yīng)用程序中所需的所有信息,它把你的JavaScript/css數(shù)據(jù)打包成PNG文件,然后你還可以拆包,只要使用畫布API的getImageData()。這種方法效率非常高,可以在不縮小數(shù)據(jù)的情況下,多壓縮35%左右。
原文鏈接:http://www.cnblogs.com/ilian/archive/2012/06/20/js-quick-load.html