經(jīng)常觀察大站的朋友都會(huì)發(fā)現(xiàn),他們都把CSS寫在HMTL頁面里,一個(gè)頁面的或者多個(gè)頁面的背景圖片,都集成到一張圖片里,他們有的JS文件,也寫到頁面里了……也許你會(huì)迷惑,現(xiàn)在到處講頁面的優(yōu)化,不都是要把CSS、JS都獨(dú)立出來,然后掉用嗎?大站這樣的做法豈不是不利于SEO?難道他們真的不懂SEO嗎?下面,我就給大家詳細(xì)解釋下其中原因。
首先,我們訪問網(wǎng)站的時(shí)候,會(huì)對服務(wù)器發(fā)出HTTP請求,網(wǎng)站打開的快慢,處理與頁面的大小圖片大小網(wǎng)速等多方面的因素外,還有個(gè)重要的因素就是HTTP 的請求數(shù)。HTTP的請求數(shù)越多,網(wǎng)站打開的速度當(dāng)然就會(huì)越慢,對服務(wù)器發(fā)出一個(gè)HTTP請求,對頁面打開速度造成的延時(shí)大概是0.01秒,一個(gè)連接,一個(gè)圖片都會(huì)對發(fā)出一個(gè)請求,如果HTTP請求過多,就會(huì)造成頁面大量的延時(shí),訪問速度自然就慢了。db08613
我們看到一些大站,他們頁面篇幅是非常巨大的,為了加快訪問的速度,他們就采用了減少HTTP請求的方法,把CSS寫到HMTL文件里,而不采用外部調(diào)用的方法。同樣的道理,一個(gè)頁面會(huì)有很多的背景圖片,背景圖雖然每個(gè)體積都很小,但是首次訪問的時(shí)候,會(huì)對服務(wù)器發(fā)出HTTP請求,造成延時(shí)。如果把所有的背景圖,都集成到一個(gè)圖片里,這樣就只會(huì)對服務(wù)器發(fā)出一個(gè)HTTP請求,請求數(shù)就會(huì)大量減少,延時(shí)就小了。然后采用CSS 的 background-image 和 background-position 屬性來實(shí)現(xiàn)所需的背景圖并定位,達(dá)到頁面所需要的表達(dá)效果。
對于頁面不常更新的地方,一般就是采用緩存的辦法來降低HTTP請求次數(shù)。有興趣的朋友可以去查閱下資料,ASP、PHP都有相應(yīng)的實(shí)現(xiàn)方法。 我們在進(jìn)行DIV+CSS布局的時(shí)候,有的朋友喜歡把CSS分成幾個(gè)部分,比如base.css、header.css、mianbody.css、footer.css這樣對頁面的維護(hù)和修改是比較方便的,比較清晰明朗,但是對加快服務(wù)器響應(yīng)時(shí)間就存在問題了。所以一般是分開寫,寫好之后再合并。
所以,我們做頁面設(shè)計(jì)的時(shí)候,并不是說我用DIV+CSS來設(shè)計(jì),比table更好了,符合W3C的標(biāo)準(zhǔn)了,完全符合HMTL的語義了,HMTL的標(biāo)簽我也運(yùn)用的精準(zhǔn)到位了就夠了,我們還要考慮到HTTP的因素在里面。一個(gè)網(wǎng)站40%-60%的訪問者,是首次打開你的站點(diǎn),如果你由于服務(wù)器的相應(yīng)時(shí)間問題而影響了打開了的速度,對用戶體驗(yàn)就會(huì)造成很大的影響。
減少HTTP請求,是從性能上來優(yōu)化網(wǎng)站的一個(gè)非常重要部分,也是SEO中非常重要的一個(gè)部分,也就是減少HTTP請求有利于SEO。