整合營銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          網(wǎng)站 Web 性能和速度優(yōu)化指南大全

          著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。

          (2)網(wǎng)站內(nèi)容頁面選擇無域名

          靜態(tài)資源一般無需使用,可以把它們放在使用二級域名或者專門域名的無服務(wù)器上,降低傳送的造成的流量浪費(fèi),提高響應(yīng)速度。例如

          使用 專門處理圖片請求使用 專門處理腳本請求使用 專門處理網(wǎng)頁請求

          當(dāng)時我們提到的原因是:

          提高了下載的并行度由于可以使用多個服務(wù)器,所以可以提高服務(wù)器的響應(yīng)能力

          其實(shí)這種做法還有一個附加的獎勵,以上的三個主機(jī)中,應(yīng)該只有www主機(jī)才可能需要保存(它對于圖片和腳本來說是沒有意義的),我們知道會自動地發(fā)送給當(dāng)前域的所有請求,我們通過將圖片和腳本單獨(dú)放在一個主機(jī), 所有與www主機(jī)關(guān)聯(lián)的不會發(fā)送到主機(jī)或者主機(jī),這樣就可以大大地節(jié)省網(wǎng)絡(luò)流量。

          四、CSS

          CSS的樣式表在網(wǎng)站中是給與頁面渲染,呈現(xiàn)視覺反饋的作用。在很多時候,網(wǎng)站的美化過后,過度地修改樣式表也會給網(wǎng)站造成很大的負(fù)擔(dān)。比如:重復(fù)性的樣式過多,垃圾無用的CSS樣式?jīng)]有清除,引入過多的CSS文件,都會給網(wǎng)站造成負(fù)擔(dān)。更好地優(yōu)化樣式表,才能更好地優(yōu)化網(wǎng)站。

          (1)網(wǎng)站把樣式表置于頂部

          把樣式表放在中可以讓頁面漸進(jìn)渲染,盡早呈現(xiàn)視覺反饋,給用戶加載速度很快的感覺。這對內(nèi)容比較多的頁面尤為重要,用戶可以先查看已經(jīng)下載渲染的內(nèi)容,而不是盯著白屏等待。

          這一點(diǎn)毫無爭議。HTML規(guī)范中都明確地規(guī)定,樣式定義(包括直接定義在文檔中的,或者外部引用的樣式表),應(yīng)該放在HEAD里面,而不應(yīng)該放在BODY里面(不管是BODY的頂部,中部,甚至是底部)。

          這一條原則進(jìn)一步對此做了解釋,這對于我來說也是一個很有意思的收獲。

          之所以放在頂部,是為了提供漸進(jìn)式呈現(xiàn)( )頁面的可能性。也就是說,可以一點(diǎn)一點(diǎn)地,由上而下地呈現(xiàn)內(nèi)容。這個對于用戶來說,能提供一種較好的用戶體驗(yàn)。如果放在了底部,很多瀏覽器(尤其是IE瀏覽器)會阻止呈現(xiàn)任何內(nèi)容,直到加載了這些樣式表。這是為什么呢?如果它在沒有加載樣式表之前呈現(xiàn)了那些內(nèi)容,當(dāng)然是可以的。但大家可以試想一下,等到它加載了樣式表,它很可能需要重新呈現(xiàn)這些內(nèi)容。所以,它們?yōu)榱吮苊庵貜?fù)地呈現(xiàn),就干脆什么都不做。取而代之的是,用戶將看到空白如也的一個頁面,然后等到全部加載完成了,再突然出現(xiàn)一大堆內(nèi)容在他面前。

          如果把樣式表放在頁面底部,一些瀏覽器為減少重繪,會在 CSS 加載完成以后才渲染頁面,用戶只能對著白屏干瞪眼網(wǎng)站優(yōu)化,用戶體驗(yàn)極差。把樣式表放到文檔的HEAD部分能讓頁面看起來加載地更快。

          (2)網(wǎng)站避免使用CSS表達(dá)式()

          在設(shè)計(jì)我們的CSS的時候,很可能會有遇到下面這個情況:

          -color: ((new Date()).()%2 ? "#" : "#" );

          上面的代碼設(shè)計(jì)的初衷是為了希望我們擁有定義動態(tài)的CSS樣式的能力。

          這里可以使用一個特殊的函數(shù),其實(shí)這是一個的函數(shù)。它可以進(jìn)行根據(jù)一個表達(dá)式進(jìn)行計(jì)算,動態(tài)地決定-color的值。

          看起來是一個相當(dāng)不錯的功能,但我們可能不會想到這個表達(dá)式會運(yùn)算很多次(這個具體的次數(shù)可能遠(yuǎn)遠(yuǎn)超過你的想象)所以,我們在設(shè)計(jì)網(wǎng)站的時候,應(yīng)該盡量避免這種情況,這樣會造成瀏覽器極大的損耗。

          (3)網(wǎng)站用代替@導(dǎo)入樣式表

          這一條規(guī)則其實(shí)很簡單,因?yàn)闉g覽器兼容的問題,IE中,link和導(dǎo)入樣式表是一樣的,但是現(xiàn)在已經(jīng)不是IE獨(dú)霸天下的時代了,所以,為了更好地兼容各個瀏覽器,網(wǎng)站應(yīng)該使用link而不是@導(dǎo)入樣式表。

          (4)網(wǎng)站避免使用濾鏡

          和上一條規(guī)則:網(wǎng)站應(yīng)該使用link而不是@導(dǎo)入樣式表,一樣同理。

          這一條原則也是關(guān)于標(biāo)準(zhǔn)化設(shè)計(jì)的問題。濾鏡這個功能也是IE當(dāng)年為了提供更加豐富的一些頁面效果而設(shè)計(jì)的(相應(yīng)的也會有代價)。

          其實(shí)不僅僅是別的瀏覽器可能不支持,IE 從9.0版本開始也放棄了這方面的支持。

          我們可以期待的是,CSS 3.0作為后續(xù)的一個版本,會為網(wǎng)頁的特殊效果提供一個標(biāo)準(zhǔn)的支持,也就是CSS3 的。(注意:CSS3的是可以用的)

          五、JS

          是屬于網(wǎng)絡(luò)的腳本語言! 被數(shù)百萬計(jì)的網(wǎng)頁用來改進(jìn)設(shè)計(jì)、驗(yàn)證表單、檢測瀏覽器、創(chuàng)建,以及更多的應(yīng)用。就是因?yàn)殚_發(fā)者多,而且功能強(qiáng)大,所以功能上精進(jìn)的同時,我們也要保證網(wǎng)站的高效。

          (1)網(wǎng)站把JS腳本置于頁面底部

          瀏覽器下載腳本時,會阻塞其他資源并行下載,即使是來自不同域名的資源。因此,最好將腳本放在底部,以提高頁面加載速度。

          一些特殊場景無法將腳本放到頁面底部的,可以考慮

          重復(fù)的腳本不僅產(chǎn)生不必要的HTTP請求,而且重復(fù)解析執(zhí)行浪費(fèi)時間和計(jì)算資源。

          (5)網(wǎng)站減少JS對DOM訪問

          操作 DOM 很慢,尤其是 DOM 節(jié)點(diǎn)很多時。由于現(xiàn)在有了很多強(qiáng)大的框架和庫,網(wǎng)頁開發(fā)人員擁有了前所未有的能力和熱情——通過為網(wǎng)頁添加各種各樣的效果,甚至完全可以從零開始構(gòu)造一個文檔。這在以往是不能想象的。話說, 這個有點(diǎn)“古老”語言這幾年重新煥發(fā)了青春,甚至有一發(fā)不可收拾的趨勢,原先的只是編寫客戶端的腳本,現(xiàn)在也可以編寫服務(wù)器腳本,甚至還可以編寫桌面程序,程序。

          為了幫助大家更加清晰地了解,并且避免常見的一些問題,這里整理列舉一些通用的技巧(部分翻譯來自上述提到的幾個文檔)

          永遠(yuǎn)使用最新的版本。合并并最小化腳本。盡量使用for,而不是each。盡量使用ID去訪問,而不是class。如果有可能,通過提供上下文,縮小查找范圍。例如 $(, )。對一個元素的多次訪問(尤其在循環(huán)里面),可以考慮先用一個變量將其緩存起來,而不是每次都重新查找它。應(yīng)該盡可能使用到的鏈?zhǔn)竭x擇方法。在可能的情況下,盡量減少動態(tài)插入、添加、刪除元素。(我知道你很多時候做不到這一條)對于要拼接大量字符串的情況,可以考慮使用join方法,而不是函數(shù),或者+= 這樣的運(yùn)算符。為所有事件的處理函數(shù)都返回false。

          最后,不要滿足于一些較高層的技巧,要以用戶體驗(yàn)為主。

          (6)網(wǎng)站開發(fā)智能事件處理程序

          其實(shí)這也算不上智能,我們需要了解DOM元素的事件工作機(jī)制,就能正常地寫出更好的事件處理程序。

          六、圖片

          網(wǎng)站的圖片是網(wǎng)站必要資源之一,每一個網(wǎng)站的圖片都要用一個http去獲取。網(wǎng)站的圖片優(yōu)化是網(wǎng)站必要項(xiàng)目之一。

          (1)網(wǎng)站要優(yōu)化圖像

          你可以使用這個工具對gif圖片進(jìn)行檢查,以確認(rèn)它們是否還有優(yōu)化的空間。而且圖片的大小關(guān)系都下載的速度,圖片大小的優(yōu)化是非常重要的。

          如果圖片大小太大的話,建議壓縮優(yōu)化大小之后上傳,不然會影響網(wǎng)站的下載速度。

          如果是網(wǎng)站,推薦使用 Jpeg & PNG 這個插件來壓縮,每個月有500張圖片的壓縮額度,對一般的網(wǎng)站來說是夠用了。

          (2)網(wǎng)站優(yōu)化CSS

          CSS (由于很難做中文翻譯,所以保留英文)是這樣一種技術(shù):如果我們的多個頁面元素需要使用不同的圖片(例如作為背景),常規(guī)的做法可以為每個元素定制一個CSS,每個CSS中通過-image屬性來設(shè)置不同的圖片。這樣做是可以實(shí)現(xiàn)功能的,但會帶來的一個問題就是可能需要下載多個圖片。為了改善這一點(diǎn),CSS的設(shè)計(jì)者考慮了一種新的做法:可以將這些圖片合并為一個大圖片,然后在CSS中不僅僅設(shè)置-image屬性,同時還設(shè)置-屬性來決定要顯示的圖片區(qū)域。這樣一來,既實(shí)現(xiàn)同樣的效果,又減少了圖片下載的數(shù)量。

          這種技術(shù)可能會帶來一些額外的工作或者麻煩:

          手工地合并這些圖片,并要去測量相應(yīng)的像素位置,是比較繁瑣的。不過,現(xiàn)在可以通過一些工具來幫助簡化工作。

          額外的維護(hù)工作。如果其中某個圖片修改了,不光要生成新的圖片,而且可能涉及到很多CSS的修改。CSS 一般只能使用到固定大小的盒子(box)里,這樣才能夠遮擋住不應(yīng)該看到的部分。

          幾個優(yōu)化建議,主要如下:

          盡可能地使用橫向組合圖片,這比縱向組合圖片通常體積更小一些。盡量使圖片具有接近的色系,這樣最終組合出來的圖片也會小一些。盡量使用小一些的圖片,并且圖片之間的間隙盡量也小一些,目的還是為了最終組合出來的圖片體積更小。(3)網(wǎng)站不要在HTML中縮放圖像、圖片

          這個錯誤的設(shè)計(jì)其實(shí)在早些年做網(wǎng)頁設(shè)計(jì)的時候,也經(jīng)常會犯(原因在于很多時候,我們都有懶散的心理,圖一時的方便)。

          有時候,能得到的圖片尺寸并不那么合乎要求(我說過了,我通常不太會自己做圖片),但為了在網(wǎng)頁中顯示出我希望的尺寸,我會很自然地想到通過如下的方式來圖片進(jìn)行縮放:

          width="100" ="100" src="mycat.jpg" alt="My Cat" />

          縮放的意思其實(shí)是說:

          不管mycat.jpg這個圖片原始尺寸是多少,通過明確地設(shè)置圖片寬度和高度,要求它最終顯示出來的尺寸是100px * 100px.

          很顯然,瀏覽器下載到原始圖片之后,如果原始尺寸與目標(biāo)尺寸不符,就會需要對圖片進(jìn)行縮放(拉伸或者縮小),以便實(shí)現(xiàn)剛才所提到的目的。

          所以,請記住并遵守這條原則:你需要在網(wǎng)頁中顯示什么尺寸的圖片,就請圖片設(shè)計(jì)人員提供什么尺寸的圖片,而不是在網(wǎng)頁中進(jìn)行縮放。

          (4)網(wǎng)站中的.ico要小而且可緩存

          這個文件的詳細(xì)信息,有興趣的朋友可以參考/zh-cn/,整理總結(jié)如下:

          每個網(wǎng)站都應(yīng)該有該文件,瀏覽器在訪問任何頁面的時候,總是會嘗試去請求這個文件(如果本地沒有的話)。該文件通常應(yīng)該命名為.ico ,如果希望使用別的名稱或者格式(例如PNG),則需要在頁面的頭部(Head)中定義引用(下面兩句中的第一句是必須的)

          該文件可以直接放在網(wǎng)站根目錄,但也可以放在其他的主機(jī),或者你想要的任何位置。如果不在默認(rèn)的根目錄下面,也是需要通過上面所提到的引用方式定義。

          由于該文件的這些特性,所以我們有三條優(yōu)化的建議

          七、移動端

          網(wǎng)站的移動端在近幾年發(fā)展得很快,這里的優(yōu)化也是非常重要的,百度和谷歌分別推出了針對移動端的優(yōu)化,MIP頁面和AMP頁面。如果對移動端需求量非常大的話,可以針對市場進(jìn)行相應(yīng)的優(yōu)化。

          八、相關(guān)

          這里是針對網(wǎng)站來進(jìn)行相關(guān)的優(yōu)化,因?yàn)榫W(wǎng)站發(fā)展了這么多年,雖然它強(qiáng)大的系統(tǒng)也是被人們廣泛使用的原因之一,但是,經(jīng)過這么多年的發(fā)展,很多功能也會對網(wǎng)站造成了多余的負(fù)擔(dān),更好地定制和優(yōu)化網(wǎng)站是我們必須要做的。

          (1)關(guān)閉日志修訂記錄

          有個功能叫做日志修訂,是為了能夠回退到以前日志修改的位置。覺得在制作發(fā)布信息平臺時用處不大,可能在做重要信息存儲時有用,這個根據(jù)個人情況取舍吧!有了這個日志修訂功能,每個修訂都會在 posts 表中插入一條記錄,寫了一篇文章,多修改了幾次,都會插入多個修訂版本。這樣子每篇日志都有10多條記錄在 posts 表中,那么到時候文章一多,就有可能把表撐爆,數(shù)據(jù)一多,查詢肯定慢, 的效率就會很低了。解決方法:在 wp-.php 添加的代碼如下:

          ('', false);

          (2)刪除數(shù)據(jù)庫緩存

          在后臺寫文章會時隔一段時間自動給我們保存成修訂版本,這樣的修訂版本會自動保存到數(shù)據(jù)中心,在前臺是看不到的,這樣更新一篇文章需要花費(fèi)幾十分鐘甚至1個小時的時候會產(chǎn)生很多的修訂版本,這就是ID不連續(xù)的主要原因,這樣在我們有500篇文章時候可能會有2000個記錄文章,時間之后會產(chǎn)生幾千幾萬的記錄(這就是為什么很多人說開始速度還可以,以后速度越來越不好)。我們需要刪除修訂版本,不讓修訂版本添加到數(shù)據(jù)中心。

          解決方法:

          在wp-.php文件中添加"('', false);"代碼。插件wp-可以刪除(3)禁用谷歌字體

          谷歌字體在國內(nèi)很多時候加載非常慢,所以禁用谷歌的字體是非常有必要的。我們可以在.php中查找/css,并注釋掉,如下:

          // ('ts', ( $, "/css"));

          // ('ts');

          (4)禁止函數(shù)

          在中的.php中添加如下:

          ('', 'n' );

          ( '', '' );

          () {

          ('');

          }

          (5)去除中的非必須項(xiàng)

          我們知道,();會引入很多我們不想要的資源來到里面,增加網(wǎng)站的負(fù)載,而對于程序,雖然功能很多,但是還是要盡量給網(wǎng)站減負(fù),這里對刪除里面很多沒用的標(biāo)記和元素。這些東西包括, , , , , prev, next, meta, , index, start等。這些標(biāo)記不僅會對增加頁面的體積網(wǎng)站優(yōu)化,而且可能導(dǎo)致安全問題。比如“” 元標(biāo)記就會泄露的版本號,如果你沒用及時更新一個已經(jīng)曝出有安全漏洞的版本。

          在.php加入下面的代碼即可,代碼后面的注釋,可根據(jù)自己的需要加入:

          //洗

          ( '', '', 2 ); //去除文章feed

          ( '', '' ); //針對Blog的遠(yuǎn)程離線編輯器接口

          ( '', '' ); // Live 接口

          ( '', '', 10, 0 ); //移除后面文章的url

          ( '', '', 10, 0 ); //移除最開始文章的url

          ( '', '', 10, 0 );//自動生成的短鏈接

          ( '', '' ); // 移除版本號

          ('', '');//當(dāng)前文章的索引

          ('', '', 3);// 額外的feed,例如, tag頁

          ('', 'ink', 10, 0); // 上、下篇.

          ('', '', 10, 0 );//rel=pre

          ('l10n');

          ('', '');//禁用半角符號自動轉(zhuǎn)換為全角

          ('', '', 2);//禁用類似rel='dns-' href='//'

          ('', '' );

          ('', '' );

          ( '', 'head', 10 );

          ( '', '', 10 );

          (6)移除JS和CSS中的版本號

          在.php加入下面的代碼即可移除版本號,反正黑客知道的版本進(jìn)行黑客攻擊:

          /**

          * 移除 加載的JS和CSS鏈接中的版本號

          */

          _ver( $src ) {

          if( ( $src, 'ver=' ) )

          $src = ( 'ver', $src );

          $src;

          }

          ( '', '_ver', 999 );

          ( '', '_ver', 999 );

          (7)移除非必要的插件

          網(wǎng)站是用插件來實(shí)現(xiàn)很多功能,但是插件太多的話,會造成網(wǎng)站負(fù)載太高,所以有時候,網(wǎng)站的CPU會很高。刪除不必要的插件對網(wǎng)站來說是非常必要的。

          (8)關(guān)閉更新的提示

          關(guān)閉后臺的更新提示可以解決后臺比較慢的問題,在.php加入下面的代碼:

          //關(guān)閉所有更新提示

          ('', ('$a', " null;")); // 關(guān)閉核心提示

          ('', ('$a', " null;")); // 關(guān)閉插件提示

          ('', ('$a', " null;")); // 關(guān)閉主題提示

          ('', ''); // 禁止 檢查更新

          ('', 's'); // 禁止 更新插件

          ('', ''); // 禁止 更新主題

          總結(jié)

          網(wǎng)站的優(yōu)化是一個長期的過程,只有長期優(yōu)化網(wǎng)站,才能讓網(wǎng)站更好地運(yùn)行。最后,推薦大家一個谷歌插件來給自己網(wǎng)站的頁面評分, ,可以給自己的頁面評分,而且對于一些可優(yōu)化項(xiàng),也會列出明細(xì),評分后頁面如下:


          主站蜘蛛池模板: AV无码精品一区二区三区| 亚洲另类无码一区二区三区| 亚洲一区在线视频| 四虎永久在线精品免费一区二区 | 日本免费一区二区在线观看| 成人免费视频一区二区| 亚洲AV成人精品一区二区三区| 日本不卡在线一区二区三区视频| 国产在线不卡一区| 精品国产一区二区二三区在线观看| 久久久老熟女一区二区三区| 国产精品女同一区二区久久 | 精品一区二区久久久久久久网精| 麻豆AV一区二区三区| 精品人妻少妇一区二区三区| 国产精品一区电影| 波多野结衣中文字幕一区| 在线一区二区三区| 在线电影一区二区| 国产亚洲综合一区二区三区| 在线观看视频一区二区| 日韩精品一区二区三区国语自制 | 亚洲毛片αv无线播放一区| 538国产精品一区二区在线| 国产精品自在拍一区二区不卡| 免费一区二区三区在线视频| 亚洲乱码国产一区网址| 久久久久人妻一区精品| 人妻少妇精品一区二区三区| 精品一区二区在线观看| 亚洲美女视频一区| 亚洲综合色一区二区三区| av一区二区三区人妻少妇| 精品国产日韩亚洲一区91| 亚洲日本中文字幕一区二区三区| 精品日韩在线视频一区二区三区 | 亚洲欧美国产国产综合一区| bt7086福利一区国产| 99偷拍视频精品一区二区| 亚洲国产精品第一区二区三区| 中文字幕日韩人妻不卡一区 |