Web前端開(kāi)發(fā)技術(shù)對(duì)網(wǎng)站性能的影響發(fā)布者:本站 時(shí)間:2020-05-05 12:05:07
當(dāng)前,信息技術(shù)的發(fā)展速度是有目共睹的,人們的生產(chǎn)、生活都很難離開(kāi)互聯(lián)網(wǎng)。只有具備強(qiáng)大的性能,在大量用戶(hù)訪問(wèn)網(wǎng)頁(yè)時(shí),網(wǎng)站才能穩(wěn)定地向用戶(hù)提供優(yōu)質(zhì)的服務(wù)。針對(duì)這一需求,人們必須從Web前端開(kāi)發(fā)技術(shù)角度出發(fā),進(jìn)一步提升網(wǎng)站性能。當(dāng)前,Web前端開(kāi)發(fā)擁有3種比較重要的支柱性語(yǔ)言,它們分別是HTML、CSS以及客戶(hù)腳本語(yǔ)言,網(wǎng)站性能的好壞在很大程度上受到它們的影響,因此必須在Web前端開(kāi)發(fā)過(guò)程中對(duì)其進(jìn)行深入的研究和剖析。為了保證研發(fā)工作能夠真正達(dá)到預(yù)期效果,本文分析了這些技術(shù)的概念及其具體特征。
1 Web前端開(kāi)發(fā)技術(shù)概述
1.1 HTML
HTML是指超文本標(biāo)記語(yǔ)言,一般來(lái)說(shuō),此種語(yǔ)言是一個(gè)網(wǎng)頁(yè)的重要組成部分。通常情況下,該種語(yǔ)言的主要作用是通過(guò)各種類(lèi)型的標(biāo)記,進(jìn)一步區(qū)分網(wǎng)頁(yè)中不同類(lèi)型的內(nèi)容,最后系統(tǒng)終端會(huì)對(duì)HTML的請(qǐng)求進(jìn)行解析,并根據(jù)需求向用戶(hù)顯示相應(yīng)的網(wǎng)頁(yè)內(nèi)容。
1.2 CSS
CSS翻譯為中文的意思是“層疊樣式表”,它是由一些不同的屬性構(gòu)成的,在多種屬性的共同影響下,Web中相應(yīng)的頁(yè)面元素會(huì)根據(jù)實(shí)際情況自動(dòng)進(jìn)行格式化,并且根據(jù)不同的格式會(huì)顯示出不同的網(wǎng)頁(yè)內(nèi)容。在網(wǎng)頁(yè)運(yùn)行過(guò)程中,CSS一般具有三種添加方式:一是簡(jiǎn)單直接地添加到各類(lèi)相應(yīng)的標(biāo)記中;二是有選擇性地在STYLE標(biāo)記中添加;三是在外部樣式表文件中進(jìn)行添加。
1.3 客戶(hù)端腳本語(yǔ)言
簡(jiǎn)單來(lái)說(shuō),腳本語(yǔ)言在一定程度上決定了網(wǎng)頁(yè)的實(shí)現(xiàn)和用戶(hù)交互,上文提到的HTML和CSS通常都是靜態(tài)的,它們的功能比較單一,僅僅只能通過(guò)一種已經(jīng)提前選擇好的格式來(lái)顯示出相應(yīng)的網(wǎng)頁(yè)內(nèi)容,有時(shí)不能很好地呈現(xiàn)出預(yù)期效果,但是腳本語(yǔ)言可以解決這些問(wèn)題。概括來(lái)說(shuō),腳本語(yǔ)言實(shí)際上是一段完全獨(dú)立于其他內(nèi)容的簡(jiǎn)單程序。目前,行業(yè)內(nèi)認(rèn)可度最高的腳本語(yǔ)言要數(shù)JavaScript(簡(jiǎn)稱(chēng)“JS”),它的自動(dòng)化程度比較高,可以隨著用戶(hù)操作的改變,顯示出不同類(lèi)型的內(nèi)容,其被稱(chēng)為動(dòng)態(tài)效果。和上文提到的CSS一樣,JavaScript一般具有三種嵌入方式:一是簡(jiǎn)單直接地添加到各類(lèi)相應(yīng)的標(biāo)記中;二是有選擇性地在STYLE標(biāo)記中添加;三是在外部樣式表文件中進(jìn)行添加。圖1是HTML、CSS、JavaScript三種語(yǔ)言的相互關(guān)系。
2 Web前端開(kāi)發(fā)技術(shù)對(duì)網(wǎng)站性能的影響
2.1 HTML對(duì)網(wǎng)站性能的影響
互聯(lián)網(wǎng)的加載速度取決于HTML文件的大小,一般來(lái)說(shuō),采用HTML編寫(xiě)的網(wǎng)頁(yè)后面都有一個(gè)統(tǒng)一的后綴,即.html,當(dāng)互聯(lián)網(wǎng)輸入網(wǎng)址后,終端服務(wù)器會(huì)根據(jù)指令需求把文件下載下來(lái),并通過(guò)客戶(hù)端顯示出來(lái)[1]。因此,文件越小,網(wǎng)頁(yè)的加載速度越快,反之則越慢。要想提升網(wǎng)站的性能,人們必須考慮到網(wǎng)頁(yè)的響應(yīng)速度。
另外,網(wǎng)頁(yè)中圖片數(shù)量的多少也會(huì)影響網(wǎng)站的加載速度。需要注意的是,當(dāng)用戶(hù)輸入網(wǎng)址后,網(wǎng)頁(yè)中的HT-ML文檔和圖片并不是同時(shí)被下載下來(lái)的,而是通過(guò)分別下載的方式進(jìn)行加載,每個(gè)文件在下載時(shí)都要和HTTP建立一個(gè)連接,因此圖片的增多會(huì)導(dǎo)致HTTP的連接數(shù)增多,使得網(wǎng)站加載速度變慢[2]。當(dāng)然,這些圖能夠被系統(tǒng)識(shí)別自動(dòng)保存到客戶(hù)端中,也就是說(shuō),當(dāng)用戶(hù)再一次訪問(wèn)該網(wǎng)頁(yè)時(shí),就不需要再重新加載這些圖片,那么網(wǎng)頁(yè)加載速度也會(huì)變快。
2.2 CSS對(duì)網(wǎng)站性能的影響
與前者相似,文檔中的樣式表在網(wǎng)頁(yè)加載過(guò)程中也要與HTTP分別建立不同的連接,這樣一來(lái),網(wǎng)頁(yè)的加載速度也會(huì)隨著連接的增多而變慢,從而影響整個(gè)網(wǎng)站的性能。當(dāng)然,這些CSS樣式表是能夠被系統(tǒng)識(shí)別并自動(dòng)保存到客戶(hù)端的,也就是說(shuō),當(dāng)用戶(hù)再一次訪問(wèn)該網(wǎng)頁(yè)時(shí),就不需要重新加載這些樣式表,那么網(wǎng)頁(yè)加載速度也會(huì)變快。
除此之外,樣式表文件的位置也或多或少影響網(wǎng)站性能。假如樣式表文件根據(jù)相關(guān)要求被放置于HTML文檔的最前端,這樣各個(gè)網(wǎng)頁(yè)會(huì)按照順序依次出現(xiàn),防止網(wǎng)頁(yè)中間突然出現(xiàn)空白頁(yè)[3]。相反,網(wǎng)頁(yè)很難在加載過(guò)程中按序依次出現(xiàn),這樣就會(huì)使用戶(hù)誤以為頁(yè)面的加載時(shí)
2.3 客戶(hù)端腳本語(yǔ)言如何影響網(wǎng)站性能
腳本文件的多少同樣會(huì)影響網(wǎng)頁(yè)加載速度。和上文提到的圖片、CSS文件相同,腳本文件也能夠被系統(tǒng)識(shí)別并自動(dòng)保存到客戶(hù)端,也就是說(shuō),當(dāng)用戶(hù)再一次訪問(wèn)該網(wǎng)頁(yè)時(shí),就不需要重新加載這些腳本文件,網(wǎng)頁(yè)加載速度會(huì)變快。此外,腳本文件的位置也會(huì)或多或少影響網(wǎng)站性能。假如腳本文件根據(jù)相關(guān)要求被放置于HTML文檔的最前端,這樣各個(gè)網(wǎng)頁(yè)會(huì)按照順序依次出現(xiàn),防止網(wǎng)頁(yè)中間突然出現(xiàn)空白頁(yè)。相反,網(wǎng)頁(yè)就很難在加載過(guò)程中按序依次出現(xiàn),這樣就會(huì)使用戶(hù)誤以為頁(yè)面的加載時(shí)間增長(zhǎng)[4]。
3 Web前端開(kāi)發(fā)技術(shù)在具體研發(fā)過(guò)程中的運(yùn)用策略
3.1 HTML語(yǔ)言應(yīng)當(dāng)遵守技術(shù)標(biāo)準(zhǔn)
3.1.1 縮減HTML文檔。
通過(guò)前文的分析可以看出,Web前端的性能會(huì)隨著HTML文檔的縮小而變好,文檔越小,加載速度越快。自HTTP1.1起,各個(gè)網(wǎng)站的瀏覽器和服務(wù)器都可以根據(jù)需要進(jìn)行壓縮,使用頻率最高的方法要數(shù)gzip[5]。
3.1.2 減少圖片。
Web前端的性能會(huì)隨著圖片數(shù)量的減少而變好。為了加快網(wǎng)站加載速度,設(shè)計(jì)者可以采用合并圖片的方式來(lái)減少圖片數(shù)量。目前行業(yè)內(nèi)認(rèn)可度較高的方式主要有圖片地圖以及CSS Sprites。
3.1.3 自動(dòng)緩存網(wǎng)頁(yè)圖片。
研究發(fā)現(xiàn),在第一次訪問(wèn)網(wǎng)頁(yè)時(shí),絕大多數(shù)網(wǎng)站的圖片都?jí)虮幌到y(tǒng)識(shí)別并自動(dòng)保存到客戶(hù)端,也就是說(shuō),當(dāng)用戶(hù)再一次訪問(wèn)該網(wǎng)頁(yè)時(shí),就不需要重新加載這些圖片[6]。在網(wǎng)站服務(wù)器中,人們可以通過(guò)Expires指令設(shè)定圖片保存時(shí)間,在保存有效期內(nèi),用戶(hù)再次訪問(wèn)網(wǎng)站可以不用重新下載圖片。
3.2 CSS樣式表應(yīng)當(dāng)遵守技術(shù)標(biāo)準(zhǔn)
3.2.1 縮減樣式表文件。
樣式表文件的多少會(huì)影響網(wǎng)站的性能,樣式表文件越少,加載速度越快,因此設(shè)計(jì)者可以采用合并樣式表的方式來(lái)減少其數(shù)量,從而提升網(wǎng)站的性能。
3.2.2 自動(dòng)緩存樣式表文件。
絕大多數(shù)網(wǎng)站中的樣式表在第一次訪問(wèn)網(wǎng)頁(yè)時(shí)都能被系統(tǒng)識(shí)別并自動(dòng)保存到客戶(hù)端,也就是說(shuō),當(dāng)用戶(hù)再一次訪問(wèn)該網(wǎng)頁(yè)時(shí),就不需要重新加載這些樣式表[7]。在網(wǎng)站服務(wù)器中,人們可以通過(guò)Expires指令設(shè)定樣式表的保存時(shí)間,在保存有效期內(nèi),用戶(hù)再次訪問(wèn)網(wǎng)站可以不用重新下載這些樣式表文件。
3.2.3 將樣式表文件放置于網(wǎng)站最前端。
網(wǎng)頁(yè)按照客戶(hù)指定的順序依次出現(xiàn)能夠防止顯示屏出現(xiàn)空白,客戶(hù)能夠根據(jù)需求依次看到相應(yīng)的內(nèi)容,使客戶(hù)認(rèn)為網(wǎng)頁(yè)速度并不慢。所以,樣式表文件應(yīng)當(dāng)放置于網(wǎng)站最前端,確保網(wǎng)頁(yè)能夠依次出現(xiàn)。
3.2.4 盡量不使用CSS表達(dá)式。
通常,CSS表達(dá)式的再一次求值會(huì)自然而然地導(dǎo)致Web前端性能降低,所以不到迫不得已,人們應(yīng)當(dāng)盡量不使用CSS表達(dá)式,必要時(shí)應(yīng)當(dāng)采用一次性表達(dá)式或事件處理器來(lái)替代[8]。
3.3 客戶(hù)端腳本方面應(yīng)當(dāng)遵守技術(shù)標(biāo)準(zhǔn)
3.3.1 減少腳本文件。
腳本文件的多少會(huì)影響網(wǎng)站性能,腳本文件越少,加載速度越快,因此設(shè)計(jì)者可以采用合并腳本文件的方式來(lái)減少其數(shù)量,從而提升網(wǎng)站性能。
3.3.2 自動(dòng)緩存腳本文件。
在第一次訪問(wèn)網(wǎng)頁(yè)時(shí),絕大多數(shù)網(wǎng)站中的腳本文件都能被系統(tǒng)識(shí)別并自動(dòng)保存到客戶(hù)端,也就是說(shuō),當(dāng)用戶(hù)再一次訪問(wèn)該網(wǎng)頁(yè)時(shí),就不需要重新加載這些腳本文件。在網(wǎng)站服務(wù)器中,人們可以通過(guò)Expires指令設(shè)定腳本文件的保存時(shí)間,在保存有效期內(nèi),用戶(hù)再次訪問(wèn)網(wǎng)站不用重新下載這些腳本文件。
3.3.3 將腳本文件放置于網(wǎng)站最底部。
與前兩者不同的是,腳本文件應(yīng)當(dāng)放置于網(wǎng)站最底部,防止腳本阻止網(wǎng)頁(yè)組建的并行下載,確保網(wǎng)頁(yè)能夠按序依次出現(xiàn),縮減網(wǎng)頁(yè)加載時(shí)間,進(jìn)一步提高網(wǎng)站性能[9]。
3.3.4 精簡(jiǎn)JavaScript。
通常情況下,程序設(shè)計(jì)者會(huì)采用精簡(jiǎn)的方法來(lái)刪除代碼中一些可有可無(wú)的注釋和字符,從而縮減JavaScript文件,確保網(wǎng)站的性能得以提升。
選擇我們,優(yōu)質(zhì)服務(wù),不容錯(cuò)過(guò)
1. 優(yōu)秀的網(wǎng)絡(luò)資源,強(qiáng)大的網(wǎng)站優(yōu)化技術(shù),穩(wěn)定的網(wǎng)站和速度保證
2. 15年上海網(wǎng)站建設(shè)經(jīng)驗(yàn),優(yōu)秀的技術(shù)和設(shè)計(jì)水平,更放心
3. 全程省心服務(wù),不必?fù)?dān)心自己不懂網(wǎng)絡(luò),更省心。
------------------------------------------------------------
24小時(shí)聯(lián)系電話:021-58370032