国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網(wǎng)站 > 優(yōu)化推廣 > 正文

Yahoo對Web前端優(yōu)化的14條經(jīng)驗拔萃

2024-04-26 14:03:44
字體:
供稿:網(wǎng)友

規(guī)則1——減少HTTP請求(Minimize HTTP Requests)
    只有10%~20%的最終用戶響應時間花在接收請求的HTML文檔上,剩下的80%~90%時間都花在HTML文檔所引用的所有組件(圖片、腳本、樣式表、Flash等)進行的HTTP請求上。因此,改善響應時間最簡單的辦法就是減少組件數(shù)量并由此減少HTTP請求數(shù)。減少組件數(shù)量通常會和產(chǎn)品設計的初衷相矛盾,因此,此處給出了一些技術:

   圖片地圖(Image Maps)聯(lián)合多個圖片到一個單獨的圖片中。下載圖片大小的總和保持不變,但是,通過減少HTTP請求數(shù)的方式加速了頁面。圖片地圖適用于導航欄或其他超鏈接中使用多個圖片的情形。但是,在定義圖片地圖上的區(qū)域坐標時,如果采用手工方式很難完成且容易出錯,而且除了矩形外幾乎無法定義其他形狀。

   CSS Sprites使用CSS background-image和background-position屬性將多個圖片聯(lián)合成一個獨立的圖片來顯示。它通過合并圖片減少了HTTP請求,并且比圖片地圖更加靈活,同時也降低了圖片的下載量。如果在頁面中需要為背景、按鈕、導航欄、鏈接等提供大量圖片,CSS Sprites是一種優(yōu)秀的解決方案。

   內(nèi)聯(lián)圖片(Inline images)使用data: URL scheme模式將圖片嵌入到HTML文檔中。通過此模式嵌入圖片,不需要任何額外的HTTP請求開銷。但是,目前的主流瀏覽器(主要是IE)不支持此種方式。

   合并文件(Combined files)通過將所有JavaScript腳本合并到一個文件,所有CSS樣式表合并到另一個文件的方式來減少HTTP請求的數(shù)量。但是簡單的合并通常會遇到模塊化、頁面變化等問題,需要根據(jù)頁面引用腳本和樣式表來具體分析以確定具體的組合方式。

規(guī)則2——使用內(nèi)容發(fā)布網(wǎng)絡(Use a Content Delivery Network)
    用戶同Web服務器的距離會對頁面響應時間產(chǎn)生影響。網(wǎng)站最初通常將其所有服務器放在同一個地方,當用戶群增加時,公司必須面對服務器放置地點不再合適的事實。因此,有必要在多個地理位置不同的服務器上部署內(nèi)容。

   作為實現(xiàn)地理位置分離的第一步,不應當首先嘗試使用分布式架構(gòu)重新設計Web應用程序。這樣的應用程序決定了重新設計將帶來如同步會話狀態(tài)、在服務器放置地點間復制數(shù)據(jù)庫事務等復雜問題。重新設計會推遲甚至根本無法實現(xiàn)縮短用戶和網(wǎng)站內(nèi)容距離的愿望。

   如果應用程序Web服務器里用戶更近,則一個HTTP請求的響應時間將被縮短;如果組件Web服務器離用戶更近,則多個HTTP請求的響應時間將縮短。因此,與其重新開始設計應用程序,以便將應用程序Web服務器分散開,不如首先將組件Web服務器分散開。這不僅能達到響應時間大幅減少的目的,還很容易實現(xiàn)。

   內(nèi)容發(fā)布網(wǎng)絡(CDN)是一組分布在多個不同地理位置的Web服務器,用于更加有效的向用戶發(fā)布內(nèi)容。向特定用戶發(fā)布內(nèi)容的服務器基于對網(wǎng)絡可用度的測量,例如,CDN可能選擇網(wǎng)絡階躍數(shù)最小的服務器,或者具有最短響應時間的服務器。

   除了縮短響應時間外,CDN還可以帶來其他優(yōu)勢,包括備份、擴展存儲能力和進行緩存;同時,CDN還有助于緩和Web流量峰值的壓力,如在獲取天氣或股市新聞、瀏覽體育或娛樂事件時。依賴CDN的一個缺點是網(wǎng)站的響應時間會受到其他網(wǎng)站——甚至可能是競爭對手流量的影響;另一個缺點是無法直接控制組件服務器所帶來的問題。

  CDN用于發(fā)布靜態(tài)內(nèi)容(如圖片、腳本、樣式表、Flash)。提供動態(tài)HTML頁面會引入特殊的存儲要求——數(shù)據(jù)庫連接、狀態(tài)管理、驗證、硬件和OS優(yōu)化等,這些復雜性超過了CDN的范圍。另一方面,靜態(tài)文件更容易存儲并具有較少的依賴。

規(guī)則3——添加Expires頭(Add an Expires or a Cache-Control Header)
   Web頁面包含大量組件,并且數(shù)量在不斷增長。頁面的初訪者會進行很多的HTTP請求,但通過一個長久的Expires頭,可以使這些組件被緩存下來,可以在后續(xù)的頁面瀏覽中避免不必要的HTTP請求。長久的Expires頭最長用于圖片,但應該將其用于所有組件上,包括腳本、樣式表和Flash。

Web服務器使用Expires頭告訴Web客戶端它可以使用一個組件的當前副本,知道指定時間為止。HTTP規(guī)范中簡要的稱該頭為“在這一日期/時間之后,響應將被認為是無效的”。例如:

復制代碼
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 张家口市| 桂平市| 洱源县| 磴口县| 彭州市| 开江县| 平乐县| 荃湾区| 都匀市| 会理县| 措美县| 陵川县| 响水县| 兴业县| 长岭县| 福泉市| 成都市| 黄龙县| 长白| 宜州市| 南康市| 普洱| 湘阴县| 东乡族自治县| 信丰县| 达州市| 禄丰县| 康保县| 四平市| 井冈山市| 三门峡市| 岳池县| 霞浦县| 皋兰县| 科尔| 林周县| 惠安县| 新营市| 广东省| 汤原县| 浦城县|