溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Web前端性能優(yōu)化方法有哪些

發(fā)布時間:2021-11-17 15:49:00 來源:億速云 閱讀:131 作者:iii 欄目:web開發(fā)

本篇內(nèi)容介紹了“Web前端性能優(yōu)化方法有哪些”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!

一、精簡javascript

基礎(chǔ)知識

精簡:從javascript代碼中移除所有的注釋以及不必要的空白字符(空格,換行和制表符),減少javascript文件的大小。

混淆:和精簡一樣,會從javascript代碼中移除注釋和空白,另外也會改寫代碼。作為改寫的一部分,函數(shù)和變量的名字將被轉(zhuǎn)換為更短的字符串,所以進一步減少了javascript文件的大小。

混淆的缺點

1. 缺陷:混淆過程本身很有可能引入錯誤。

2. 維護:由于混淆會改變javascript符號,因此需要對任何不能改變的符號進行標記,防止混淆器修改它們。

3. 調(diào)試:經(jīng)過混淆的代碼很難閱讀,這使得在產(chǎn)品環(huán)境中更加難以調(diào)試。

相對而言,精簡出錯的概率會少很多。

一個精簡和混淆的示例

這個示例將使用JSMin進行精簡,使用yuicompressor進行混淆。原始js如下:

//anthor:teroy/*

This is for test.

*/

function show(name, day) {

alert(name);

alert(day);

}

function test(name, day) {

var variable = name;

show(name, day);

}

JSMin精簡后的代碼:

function show(name,day){alert(name);alert(day);}

function test(name,day){var variable=name;show(name,day);}

yuicompressor混淆后的代碼:

function show(b,a){alert(b);alert(a)}function test(c,a){var b=c;show(c,a)};

可見,混淆更能減少js代碼的大小。

對精簡和混淆進行抉擇

我們知道啟用gzip壓縮能減少組件的傳送大小,壓縮后精簡和混淆的差別會進一步減少,綜合考慮混淆可能帶來的額外的風(fēng)險,所以優(yōu)先考慮使用精簡。不過,如果對于性能的***追求,可以使用混淆,但要做足測試,確保混淆不會帶來其他的問題。

JQuery作為非常流行的前端框架,除了有開發(fā)版外,也提供了一個min版本,供實際部署web使用,這個min版本就使用了混淆,***化地減少代碼總量。

二、移除重復(fù)腳本

出現(xiàn)重復(fù)腳本的原因

導(dǎo)致一個腳本的重復(fù)又兩個主要因素:團隊大小和腳本數(shù)量。開發(fā)一個網(wǎng)站需要極大數(shù)量的資源,不同的團隊需要構(gòu)建一個大型web的不同部分,當團隊整合和溝通工作沒有做足,則容易出現(xiàn)重復(fù)腳本的情況。當然腳本數(shù)量也是重要的一環(huán),腳本數(shù)量越多越容易出現(xiàn)重復(fù)腳本的情況。

重復(fù)腳本如何損傷性能

在沒有緩存的情況下,如果在html中重復(fù)鏈接了相同的腳本,IE7以下(包括IE7)將會產(chǎn)生兩次HTTP請求,IE8以上則不會。

除了產(chǎn)生不必要的HTTP請求外,對腳本進行重復(fù)執(zhí)行也會浪費時間,腳本的重復(fù)執(zhí)行在瀏覽器中都存在。

如何避免重復(fù)腳本

1. 形成良好的腳本組織。重復(fù)腳本有可能出現(xiàn)在不同的腳本包含同一段腳本的情況,有些是必要的,但有些卻不是必要的,所以需要對腳本進行一個良好的組織。

2. 實現(xiàn)腳本管理器函數(shù)。

“Web前端性能優(yōu)化方法有哪些”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

web
AI