日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

优化的34条定律

發(fā)布時(shí)間:2023/12/1 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 优化的34条定律 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?

1.Minimize HTTP Requests 減少HTTP請(qǐng)求

圖片、css、script、flash等等這些都會(huì)增加http請(qǐng)求數(shù),減少這些元素的數(shù)量就能減少響應(yīng)時(shí)間。把多個(gè)JS、CSS在可能的情況下寫進(jìn)一個(gè)文件,頁面里直接寫入圖片也是不好的做法,應(yīng)該寫進(jìn)CSS里,利用 CSS sprites 將小圖拼合后利用background來定位。

2.Use a Content Delivery Network 利用CDN技術(shù)
CDN的全稱是Content Delivery Network,即內(nèi)容分發(fā)網(wǎng)絡(luò)。其基本思路是盡可能避開互聯(lián)網(wǎng)上有可能影響數(shù)據(jù)傳輸速度和穩(wěn)定性的瓶頸和環(huán)節(jié),使內(nèi)容傳輸?shù)母臁⒏€(wěn)定。通過在網(wǎng)絡(luò)各處放置節(jié)點(diǎn)服務(wù)器所構(gòu)成的在現(xiàn)有的互聯(lián)網(wǎng)基礎(chǔ)之上的一層智能虛擬網(wǎng)絡(luò),CDN系統(tǒng)能夠?qū)崟r(shí)地根據(jù)網(wǎng)絡(luò)流量和各節(jié)點(diǎn)的連接、負(fù)載狀況以及到用戶的距離和響應(yīng)時(shí)間等綜合信息將用戶的請(qǐng)求重新導(dǎo)向離用戶最近的服務(wù)節(jié)點(diǎn)上。其目的是使用戶可就近取得所需內(nèi)容,解決 Internet網(wǎng)絡(luò)擁擠的狀況,提高用戶訪問網(wǎng)站的響應(yīng)速度。


3.Add an Expires or a Cache-Control Header 設(shè)置頭文件過期或者靜態(tài)緩存

瀏覽器會(huì)用緩存來減少http請(qǐng)求數(shù)來加快頁面加載的時(shí)間,如果頁面頭部加一個(gè)很長(zhǎng)的過期時(shí)間,瀏覽器就會(huì)一直緩存頁面里的元素。不過這樣如果 頁面里的東西變動(dòng)的話就要改名字了,否則用戶端不會(huì)主動(dòng)刷新,看自己衡量了~ 這項(xiàng)可以通過修改.htaccess文件來實(shí)現(xiàn)。
4.Gzip Components Gzip壓縮

Gzip格式是一種很普遍的壓縮技術(shù),幾乎所有的瀏覽器都有解壓Gzip格式的能力,而且它可以壓縮的比例非常大,一般壓縮率為85%。壓縮沒壓縮,可以到 這里 做下測(cè)試。
5.Put Stylesheets at the Top 把CSS放頂部

讓瀏覽者能盡早的看到網(wǎng)站的完整樣式。
6.Put Scripts at the Bottom 把JS放底部

網(wǎng)站呈現(xiàn)完畢后再進(jìn)行功能設(shè)置,當(dāng)然這些JS要在你的加載過程中不影響內(nèi)容表現(xiàn)。

7.Avoid CSS Expressions 避免CSS Expressions

CSS表達(dá)式很可怕,這個(gè)只被IE支持的東西執(zhí)行時(shí)候的運(yùn)算量非常大,你移動(dòng)一下鼠標(biāo)它都要進(jìn)行重計(jì)算的,但有時(shí)候?yàn)榱俗鰹g覽器的兼容必須要用到這個(gè)||| IE6去死去死!~
8.Make JavaScript and CSS External 將JS和CSS外鏈

前面講到了緩存這個(gè)事情,一些較為公用的JS和CSS,我們可以使用外鏈的形式,譬如我就是從Google外鏈來的Jquery文件,如果我的瀏覽者在瀏覽別的使用了這個(gè)外鏈文件的網(wǎng)站時(shí)已經(jīng)下載并緩存了這個(gè)文件,那么他在瀏覽我的網(wǎng)站的時(shí)候就不需要再進(jìn)行下載了!~
9.Reduce DNS Lookups 減少DNS查找

貌似是要減少網(wǎng)站從外部調(diào)用資源,我的Google分析和picasa的外鏈圖片都算在里面了。
10.Minify JavaScript and CSS 減小JS和CSS的體積

寫JS和CSS都是有技巧的,用最少的代碼實(shí)現(xiàn)同樣的功能,減少空白,增強(qiáng)邏輯性,用縮寫方式等等,當(dāng)然也有不少工具也能夠幫你實(shí)現(xiàn)這一點(diǎn)。
11. Avoid Redirects 避免重定向

再寫入鏈接時(shí),雖然”http://www. today-s-ooxx. com”和”http://www. today-s-ooxx. com/” 僅有一個(gè)最后的”/”只差,但是結(jié)果是不同的,服務(wù)器需要花時(shí)間把前者重定向?yàn)楹笳呷缓筮M(jìn)行跳轉(zhuǎn),這個(gè)要自己注意,也可以在Apache里用Alias 或者mod_rewrite或者DirectorySlash解決。
12. Remove Duplicate Scripts 刪除重復(fù)腳本

重復(fù)調(diào)用的代碼瀏覽器并不會(huì)識(shí)別忽略,而是會(huì)再次運(yùn)算一遍,這當(dāng)然是大大的浪費(fèi)。
13. Configure ETags 配置ETags

搞不清楚咋回事,總之我是在. htaccess里把它刪除了。
14. Make Ajax Cacheable 緩存Ajax

Ajax是實(shí)時(shí)響應(yīng)的,在瀏覽器接收到新的數(shù)據(jù)前,舊的數(shù)據(jù)被緩存,這樣能夠更好的提高效率。
15. Flush the Buffer Early 盡早的釋放緩沖

當(dāng)用戶進(jìn)行頁面請(qǐng)求時(shí),服務(wù)器端需要花費(fèi)200到500毫秒時(shí)間來拼合HTML,將寫在head與body之間,釋放緩沖,這樣可以將文件頭先發(fā)送出去,然后再發(fā)送文件內(nèi)容,提高效率。
16. Use GET for AJAX Requests 用GET方式進(jìn)行AJAX請(qǐng)求

Get 方法和服務(wù)器只有一次交互(發(fā)送數(shù)據(jù)),而 Post 要兩次(發(fā)送頭部再發(fā)送數(shù)據(jù))。
17. Post-load Components 延遲加載組件

最先加載必須的組件進(jìn)行頁面初始化,然后再加載其他,YUI Image Loader 是很好的例子。
18. Preload components 預(yù)加載組件

提前加載以后可能用到的東西,和延遲加載并不沖突,它的目的是為后續(xù)請(qǐng)求提供更快的響應(yīng),參見Google首頁上的CSS sprites應(yīng)用。
19. Reduce the Number of DOM Elements 減少DOM元素?cái)?shù)量

復(fù)雜的頁面結(jié)構(gòu)意味著更長(zhǎng)的下載及響應(yīng)時(shí)間,更合理更高效的使用標(biāo)簽來架構(gòu)頁面,是好的前端的必備條件。
20. Split Components Across Domains 跨域分離組件

頁面組件多個(gè)來源可以增大你的平行下載量,但注意不要過多,超過2-4個(gè)域名會(huì)引起上面說到的DNS查找浪費(fèi)。
21. Minimize the Number of iframes 減少iframe數(shù)量

需要更有效的利用 ifames。
iframe 優(yōu)點(diǎn):有利于下載緩慢的廣告等第三方內(nèi)容,安全沙箱,并行下載腳本
iframe 缺點(diǎn):即使為空也會(huì)有較大資源消耗,會(huì)阻止頁面的onload,非語義
22. No 404s 不要出現(xiàn)404頁面

站點(diǎn)本身里(非搜索結(jié)果)出現(xiàn)404頁面,無意義的404頁面會(huì)影響用戶體驗(yàn)并且會(huì)消耗服務(wù)器資源。
23. Reduce Cookie Size 減小Cookie

Cookie在服務(wù)器及瀏覽器之間的通過文件頭進(jìn)行交換,盡可能減小Cookie體積,設(shè)置合理的過期時(shí)間,能夠很好的提高效率。
24. Use Cookie-free Domains for Components 對(duì)組件使用無Cookie的域名

對(duì)靜態(tài)組件的Cookie讀取是一種浪費(fèi),使用另一個(gè)無Cookie的域名來存放你的靜態(tài)組件式一個(gè)好方法,或者也可以在Cookie中只存放帶www的域名。
25. Minimize DOM Access 減少DOM的訪問次數(shù)

JS訪問DOM是很慢的,盡量不要用JS來設(shè)置頁面布局。
26. Develop Smart Event Handlers 開發(fā)靈活的事件處理句柄

DOM樹上過多的元素被加入事件句柄的話,反應(yīng)效率肯定會(huì)低,YUI事件工具有一個(gè) onAvailable 方法可以幫助你靈活的設(shè)置DOM事件句柄
27. Choose < link >over @import 使用< link >而非 @import

在IE中使用@import就和在頁面底部用< link >一樣,我們前面說要把< link >放頂部的。
28. Avoid Filters 避免過濾器的使用

如果需要Alpha透明,不要使用AlphaImageLoader,它效率低下而且只對(duì)IE6及以下的版本適用,用PNG8圖片。如果你非要使用,加上_filter以免影響IE7+用戶。
29. Optimize Images 優(yōu)化圖片

將你的GIF轉(zhuǎn)為PNG8會(huì)是個(gè)減小體積的好辦法,另外有很多方法處理你的JPG及PNG圖片以達(dá)到優(yōu)化效果。
30. Optimize CSS Sprites 優(yōu)化CSS Sprites

在CSS Sprites中豎直并盡量緊湊的排列圖片,盡量將顏色相似的圖片排在一起,會(huì)減小圖片本身的大小及提高頁面圖片顯示速度。
31. Don’t Scale Images in HTML 不要在HTML中縮放圖片

圖片要用多大的就用多大的,1000X1000的圖片被width=”100″ height=”100″以后,本身的KB數(shù)是不會(huì)減少的。
32. Make favicon. ico Small and Cacheable 縮小favicon. ico的大小并緩存它

站點(diǎn)的瀏覽器ICO應(yīng)該不是經(jīng)常換吧,那就長(zhǎng)時(shí)間的緩存它,并且最好控制在1K以下。
33. Keep Components under 25K 保證組件在25K以下

iPhone不能緩存25K以上的組件,并且這還是要在被壓縮前。
34. Pack Components into a Multipart Document 將組件打包進(jìn)一個(gè)多部分的文檔中

就好像在郵件中加入附件一樣,一個(gè)HTTP請(qǐng)求就夠了,但是這一技術(shù)需要確保你的代理支持,iPhone就不支持。

轉(zhuǎn)載于:https://www.cnblogs.com/copper6/p/6506845.html

總結(jié)

以上是生活随笔為你收集整理的优化的34条定律的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。