新聞中心
我對(duì)于Web網(wǎng)站開(kāi)發(fā)開(kāi)有很多年的實(shí)踐經(jīng)驗(yàn),提供網(wǎng)站相應(yīng)速度一直是網(wǎng)站開(kāi)發(fā)人員孜孜不倦的追求,無(wú)論后端程序的優(yōu)化,數(shù)據(jù)庫(kù)的優(yōu)化,還是前端的優(yōu)化,最終目的只有一個(gè),讓網(wǎng)站更快的打開(kāi),給用戶(hù)提供更好的瀏覽體驗(yàn),這里只介紹從前端人員的角度來(lái),在網(wǎng)站建設(shè)中要注意的一些原則。
1、減少網(wǎng)站的HTTP請(qǐng)求數(shù)
構(gòu)造請(qǐng)求、等待響應(yīng)需要時(shí)間,因此請(qǐng)求數(shù)量越少越好,減少請(qǐng)求的總體思路就是合并資源,減少顯示一個(gè)頁(yè)面需要的文件數(shù),常規(guī)的方法有:
1.1ImageMap
通過(guò)設(shè)置<img>標(biāo)簽的usemap屬性與使用<map>標(biāo)簽可以在一幅圖片上切分出多個(gè)區(qū)域,指向不同的鏈接。比起使用多幅圖片分別構(gòu)造鏈接減少了請(qǐng)求數(shù)。
1.2.CSSSprite(CSS貼圖整合/貼圖拼合/貼圖定位)
通過(guò)設(shè)置元素的background-position樣式做到。一般用于界面圖標(biāo)。典型的可以參考TinyMCE編輯器上方的那些小按鈕。多個(gè)小圖實(shí)質(zhì)是從一個(gè)統(tǒng)一的大圖通過(guò)不同的偏移量裁剪而來(lái),這樣加載界面上的眾多按鈕實(shí)際上只要請(qǐng)求一次(請(qǐng)求大圖一次),從而減少HTTP請(qǐng)求數(shù)。
2、將css樣式表文件置于頁(yè)面前部
先加載樣式表,這樣頁(yè)面渲染得以較早開(kāi)始,給用戶(hù)頁(yè)面加載較快的感覺(jué),所以css最好放在<head></head>之間。
3、使用Gzip壓縮
使用Gzip壓縮HTTP報(bào)文,減小體積,減少傳輸時(shí)間。
4、將Js腳本放在頁(yè)面底部
原因同3,先處理頁(yè)面顯示,頁(yè)面渲染較早完成,而腳本邏輯稍后執(zhí)行,這樣給用戶(hù)頁(yè)面加載較快的感覺(jué)。
5、將JavaScript與CSS作為外聯(lián)資源
這似乎與原則1中的合并思想相悖,但其實(shí)不然:考慮每個(gè)頁(yè)面都引入了一個(gè)公共的JavaScript資源(例如jQuery或是ExtJS這樣的JavaScript庫(kù)),單就一個(gè)頁(yè)面的表現(xiàn)來(lái)看,內(nèi)聯(lián)(即將JavaScript嵌入HTML)頁(yè)面將比外聯(lián)(使用<script>標(biāo)簽引入)頁(yè)面加載更快(因?yàn)槠漭^少的HTTP請(qǐng)求數(shù))。但如果有很多頁(yè)面都引入了這個(gè)公共JavaScript資源,那么內(nèi)聯(lián)方案會(huì)造成重復(fù)傳輸(因?yàn)檫@個(gè)資源內(nèi)嵌在每個(gè)頁(yè)面中了,所以每次打開(kāi)一個(gè)頁(yè)面都要將這部分資源傳輸一遍,從而造成網(wǎng)絡(luò)傳輸資源的浪費(fèi))。而將這種資源獨(dú)立出來(lái)外聯(lián)引用可以解決這個(gè)問(wèn)題。
6、避免使用CSS表達(dá)式
過(guò)于復(fù)雜的JavaScript腳本邏輯、DOM查找、選擇操作將會(huì)降低頁(yè)面處理效率。
7、壓縮你的JavaScript
使用JS壓縮工具壓縮你的JavaScript吧,很有效哦??纯磈Query的兩個(gè)不同的發(fā)行版本就知道區(qū)別了:
8、減少域名
每次請(qǐng)求新域名都需要進(jìn)行通過(guò)DNS查找不同的域名,且DNS緩存無(wú)法發(fā)揮作用。因此應(yīng)該盡量將站點(diǎn)組織在一個(gè)統(tǒng)一域名下,避免使用過(guò)多子域名,網(wǎng)站保留一個(gè)主域名即可。
9、盡量http避免重定向
一次重定向意味著在你真正訪問(wèn)到想要看到的頁(yè)面前加入了一輪額外的HTTP請(qǐng)求(客戶(hù)端發(fā)起HTTP請(qǐng)求→HTTP服務(wù)器返回重定向響應(yīng)→客戶(hù)端對(duì)新URL發(fā)起請(qǐng)求→HTTP服務(wù)器返回內(nèi)容,下劃線(xiàn)部分為額外的請(qǐng)求),因此消耗更多的時(shí)間(也就給人反應(yīng)更慢的感覺(jué))。因此除非必要,不要隨意使用重定向,如果有下面的需求,可以采用重定向。
9.1.避免URL失效
舊站點(diǎn)遷移后,為了避免舊的URL失效,通常將對(duì)舊URL的請(qǐng)求重定向至新系統(tǒng)的對(duì)應(yīng)地址。
9.2.URL美化/偽靜態(tài)
在可讀性好的URL與實(shí)際資源URL之間轉(zhuǎn)換
10、移除重復(fù)的腳本
不要在一個(gè)頁(yè)面中重復(fù)引入相同的腳本。例如腳本B和C都依賴(lài)于A,那么在使用了B和C的頁(yè)面中就有可能存在對(duì)A的重復(fù)引用。解決方法,對(duì)于簡(jiǎn)單的站點(diǎn)手動(dòng)檢查依賴(lài)性,消去重復(fù)引入;對(duì)于復(fù)雜的站點(diǎn)則需要構(gòu)建自己的依賴(lài)管理/版本控制機(jī)制。
總結(jié):在網(wǎng)站制作時(shí)候把握上面9個(gè)原則,可以讓我們前端頁(yè)面速度和響應(yīng)速度更快,網(wǎng)站建設(shè)中是一門(mén)比較精細(xì)的技術(shù),希望從事前端開(kāi)發(fā)的網(wǎng)頁(yè)設(shè)計(jì)師可以知道更多的基礎(chǔ)知識(shí)。
本文標(biāo)題:提高網(wǎng)站建設(shè)性能的十個(gè)原則
本文鏈接http://njylbyy.cn/xinwenzhongxin/24346.html
- 從視覺(jué)、交互和技術(shù)三方面,系統(tǒng)分析2021設(shè)計(jì)趨勢(shì)
- 一套理論,一個(gè)方法,網(wǎng)頁(yè)首屏輕松做!
- 網(wǎng)頁(yè)設(shè)計(jì)中的用戶(hù)思維你真的理解嗎?
- 不藏不掖著,響應(yīng)式網(wǎng)頁(yè)大揭秘來(lái)了!
- 網(wǎng)頁(yè)設(shè)計(jì)中的用戶(hù)思維你真的理解嗎?
- 百度業(yè)務(wù)范圍
- 百度蜘蛛池優(yōu)化:成都蜘蛛王店五猴池,探尋古蜀文化的神秘足跡
- 不藏不掖著,響應(yīng)式網(wǎng)頁(yè)大揭秘來(lái)了!
- 百度蜘蛛池租用:大型蜘蛛池服務(wù)器配置指南,打造高效網(wǎng)絡(luò)爬蟲(chóng)平臺(tái)
- 百度蜘蛛池收錄:蜘蛛池租用營(yíng)銷(xiāo),開(kāi)啟高效網(wǎng)絡(luò)營(yíng)銷(xiāo)新篇章
- 網(wǎng)頁(yè)設(shè)計(jì)中的用戶(hù)思維你真的理解嗎?
- 不藏不掖著,響應(yīng)式網(wǎng)頁(yè)大揭秘來(lái)了!
- 網(wǎng)絡(luò)推廣課程培訓(xùn)
- 百度注冊(cè)地
- 高級(jí)搜索引擎技巧
- 百度蜘蛛池價(jià)格:蜘蛛池在網(wǎng)站地圖提交中的重要作用及操作指南
- 精準(zhǔn)數(shù)據(jù)營(yíng)銷(xiāo)方案
- 百度蜘蛛池收錄:地瓜解說(shuō)蜘蛛礦池,揭秘?cái)?shù)字貨幣挖礦界的隱形巨頭
- 百度蜘蛛池咨詢(xún):最蜘蛛蜘蛛池,揭秘神秘網(wǎng)絡(luò)世界的隱藏之地
- 百度蜘蛛池引流:SEO蜘蛛池攻略,打造高效網(wǎng)站流量?jī)?yōu)化方案