成全电影播放在线观看,成全在线观看高清资源,成全在线观看免费完整的,成全影视大全在线观看国语,成全电影大全在线观看高清免费播放下载,三人成全免费观看电视剧高清,成全电影大全在线观看高清免费播放电视剧,成全电影大全在线观看,成全电影大全第二季免费观看,成全电影大全在线观看国语高清,成全电影大全在线观看国语版免费,成全电影大全在线播放

  1. 云裂變
  2. 營銷
  3. 網(wǎng)站運營
  4. 聽云裂變講解Web性能優(yōu)化

聽云裂變講解Web性能優(yōu)化

作者: 日期:2017-08-04 人氣:378

為什么要提升web性能?

Web性能黃金準則:只有10%~20%的最終用戶響應時間花在了下載html文檔上,其余的80%~90%時間花在了下載頁面組件上。

web性能對于用戶體驗有及其重要的影響,根據(jù)著名的`2-5-8`原則:

當用戶在2秒以內(nèi)得到響應,會感覺系統(tǒng)的響應非常快 當用戶在2-5秒之內(nèi)得到響應,會感覺系統(tǒng)的響應速度還可以 當用戶在5-8秒之內(nèi)得到響應,會感覺系統(tǒng)的響應非常慢,但還可以接受 當用戶在8秒之后都沒有得到響應,會感覺系統(tǒng)糟透了,甚至系統(tǒng)已經(jīng)掛掉;要么打開競爭對手的網(wǎng)站,要么重新發(fā)起第二次請求。

凡事都需要研究,通過科學的研究我們就可以找到事物的發(fā)展規(guī)律。這里要感謝工程師總結(jié)的14條前端優(yōu)化法則,使得我們可以站在巨人的肩膀上?!陡咝阅芫W(wǎng)站建設》這本書中的14條優(yōu)化原則,總結(jié)起來主要是以下個方面的優(yōu)化:

減少HTTP請求

頁面內(nèi)部優(yōu)化

啟用緩存

減少下載量

網(wǎng)絡連接上的優(yōu)化

為什么減少HTTP請求可以提高Web性能?

要回答這個問題,我們就要了解當瀏覽器向服務器發(fā)送一個http請求知道獲取數(shù)據(jù)都經(jīng)歷哪些過程:

開啟一個鏈接(tcp/ip的三次握手過程) -> 發(fā)送請求 -> 等待(網(wǎng)絡延遲跟服務器的處理時間) -> 下載數(shù)據(jù)

我們看一下百度首頁中的http請求在各階段耗費的時間,上面不同的顏色代表下圖中的不同階段

可以看到除了圖片之外,其余大部分http請求的事件花在了建立連接與等待階段。

http協(xié)議建立在TIC/IP協(xié)議之上,在TCP/IP協(xié)議中,TCP協(xié)議提供可靠的連接服務,采用三次握手建立一個連接。 簡單來說三次握手就是一個身份確認的過程:

(第一次握手:主機A發(fā)送位碼為syn=1,隨機產(chǎn)生seq number=1234567的數(shù)據(jù)包到服務器,主機B由SYN=1知道,A要求建立聯(lián)機;)

(第二次握手:主機B收到請求后要確認聯(lián)機信息,向A發(fā)送ack number=(主機A的seq+1),syn=1,ack=1,隨機產(chǎn)生seq=7654321的包)

(第三次握手:主機A收到后檢查ack number是否正確,即第一次發(fā)送的seq number+1,以及位碼ack是否為1,若正確,主機A會再發(fā)送ack number=(主機B的seq+1),ack=1,主機B收到后確認seq值與ack=1則連接建立成功。)

言歸正傳,這個過程也是需要消耗時間的,在百度首頁找到一個極端的例子:

而等待的時間通常也大于內(nèi)容下載的時間,這里同樣找到一個極端例子:

由此我們可以得出結(jié)論:一個http請求絕大多數(shù)的時間消耗在了建立連接跟等待的時間,優(yōu)化的方法是減少http請求。

如何提高web性能?

1、減少HTTP請求

一般來說要減少http請求通常從兩個方面下手:減少圖片的請求、減少腳本文件與樣式表的請求

圖片的減少通常有兩種方式:css sprites、內(nèi)聯(lián)圖片、IconFont。

CSS Sprites:將多張圖片合并成一幅單獨的圖片,使用css的background-position屬性,將html元素的背景圖片放到sprites 圖片中的期望位置上。使用這項技術的附加優(yōu)點是他降低了下載量,合并后的圖片比分離的圖片和更小,因為它降低了圖片自身的開銷(顏色表、格式信息等等)。實際項目中css sprites是一項體力活,因為開發(fā)過程中需要對這張大圖進行維護(添加、減少圖片),張鑫旭同學的文章中有介紹如何管理sprites圖片可以作為參考(這里)。如果需要在頁面中為背景、鏈接、導航欄提供大量的圖片,css sprites絕對是一種優(yōu)秀的解決方案(干凈的標簽、較少的圖片、較短的響應時間)。

內(nèi)聯(lián)圖片:通過使用data:URL模式可以再頁面中包含圖片而無需任何額外的請求。缺點就是IE8以下的瀏覽器不支持這種方式,而IE8在數(shù)據(jù)大小上有限制,只能支持23kb以內(nèi)的數(shù)據(jù)。對于較小的圖片來說可以直接內(nèi)聯(lián)到web頁面中,但對于大圖片內(nèi)聯(lián)到頁面里會導致頁面變大,聰明的做法是使用css,將內(nèi)聯(lián)的圖片作為背景使用,并放到外部樣式表中,這意味著數(shù)據(jù)可以緩存在樣式表內(nèi)部。使用外部樣式表雖然增加了一個http請求,但樣式可以被瀏覽器緩存,得到額外的收獲。另外一點需要注意:base64是有損壓縮。

IconFont:圖標字體,這是近年來新流行的一種以字體代替圖片的技術。它可以適應任何分辨率而不會出現(xiàn)圖片模糊問題,與圖片相比它具有更小的容量,更高的靈活性(像字體一樣可以設置圖標大小、顏色、透明度、hover狀態(tài)、反轉(zhuǎn)等),IE8以上的瀏覽器都支持該技術。在使用IconFont之前,你首先要確定你選則的字體庫是否是收費。詳細內(nèi)容可以參考這篇文章:圖標字體化淺談

減少腳本與樣式表的請求主要原則就是合并。在實際開發(fā)中我們遵循模塊化的原則將代碼分散到許多小文件中,按照軟件開發(fā)的原則這是完全正確的,但對于上線頁面來說,每一個文件都會產(chǎn)生一個http請求,嚴重影響性能。和css sprites一樣,將這些小文件合并到一個文件中,可以減少http請求的數(shù)量并縮短最終用戶響應時間。在合并過程中我們還需要使用工具精簡(移除不必要的字符以減小文件大小縮減下載時間)和混淆(除了移除不必要字符外,還會改寫源代碼,比如函數(shù)和變量名使用更短的標量名)Javascript代碼。對于采用AMD或CMD進行模塊化開發(fā)的同學,在合并過程中通常會將依賴的其他模塊打包到一個文件中,而模板html通常以字符串的方式內(nèi)聯(lián)到Javascript文件中。目前最常用的前端構(gòu)建工具就是glup,這里有一篇初步應用的文章:前端 | gulp 打包 require.js 模塊依賴

2、頁面內(nèi)部優(yōu)化

關于頁面內(nèi)部優(yōu)化主要方向:樣式表放在頂部、腳本文件放在底部、避免css表達式、把腳本的樣式表放在外部、移除重復腳本

關心性能的工程師都希望頁面能否盡快的展現(xiàn)在用戶面前,對于頁面中很多內(nèi)容的頁面我們都希望內(nèi)容能夠逐步加載,為用戶提供可視化回饋。而將樣式表放在底部會導致瀏覽器阻止內(nèi)容逐步呈現(xiàn)。為避免當頁面變化時重繪頁面元素,瀏覽器會阻塞頁面呈現(xiàn),直到樣式表解析完畢(詳細內(nèi)容可以查看我的這篇博客)。所以如果將樣式表放在頂部并不會減少資源的加載時間,它減少的是頁面的呈現(xiàn)時間。小米主頁曾經(jīng)犯過這樣的錯誤:

將樣式表放在底部會阻塞頁面的逐步呈現(xiàn),而將script文件放在頁面頂部同樣會阻塞頁面的逐步呈現(xiàn)。script元素會阻塞后續(xù)內(nèi)容的解析,因為script中可以同過document.write來更改頁面。解決的辦法就是將script標簽放在頁面底部。這樣既可以讓內(nèi)容逐步呈現(xiàn),也可以提高下載的并行度。如果我們確定不需要document.write那可以為script標簽加上asyn屬性(Ie中要加上defer)提高并行下載度。

CSS表達式是ie支持的可以用來動態(tài)更改css屬性的一種方式,我們不需要了解太多,她的書寫方式如下,一旦在產(chǎn)品中發(fā)現(xiàn)expression關鍵字就要徹底消滅。

使用外部腳本和樣式這一條,我想凡是有點經(jīng)驗的工程師都會這么干。

移除重復腳本:這條說的主要是避免在頁面中多次加入同一份Javascript代碼,如果我們的開發(fā)中有依賴管理的方式比如AMD、CMD,基本不會出現(xiàn)這種情況。

3、啟用緩存

關于緩存的使用這里介紹兩套方案:expires/If-Modified-Since、Cache-Control/Etag;前者是HTTP1.0中的緩存方案,后者是HTTP1.1中緩存方案,若http頭部中同時出現(xiàn)二者,后者的優(yōu)先級更高。

If-modified-since的方式通常被稱為條件Get。瀏覽器緩存中保存了一個文件的副本,但需要向服務器詢問此副本是否可用。If-Modified-Since是瀏覽器將最后修改時間發(fā)送給服務器,服務器相應頭中Last-Modified進行對比;若If-Modified-Since <= Last-Modified 則瀏覽器讀取本地副本。此時響應狀態(tài)為304 Not Modified, 并不在發(fā)送響應體。


聽云裂變講解Web性能優(yōu)化


Expries:雖然使用條件GET和304響應能夠節(jié)省時間,但瀏覽器跟服務器端仍然要發(fā)送一次請求進行確認。通過明確設置副本的過期時間可以避免條件GET。當瀏覽器發(fā)現(xiàn)響應頭中的expires時,會將過期時間和文件一起保存到緩存中去。在過期之前一直從緩存中讀取。expires頭使用一個特定的時間來指定緩存的有效期,他要求瀏覽器與服務器時間完全一致。而且一旦過期,服務器端配置中需要重新設頂一個過期時間。

ETag(實體標簽):是服務器用于檢查瀏覽器緩存有效性的一種機制。ETag在HTTP1.1中引入,ETag是唯一標識了一個組件的一個特定版本的字符串。唯一的格式約束是這個字符串必須使用雙引號。如果瀏覽器要驗證一個組件是否有效他會使用If-None-Match將etag字符串傳送給服務器。如果ETag是匹配的,服務器端會返回304.(如果實體數(shù)據(jù)需要根據(jù)User-Agent或Accept-Language來改變時,ETag提供了更高的靈活性)。對于使用服務器集群的網(wǎng)站來說,從一臺服務器到另一臺服務器,ETag通常是無法匹配的。這是ETag的問題。而且即便同時使用If-Modified-Since和If-None-Match也并不能達到預期效果。解決方法總是有的:自定義Etag格式


聽云裂變講解Web性能優(yōu)化


Cache-Control:HTTP1.1引入了來代替Expires,它使用max-age指令來指定副本被緩存多久,該指令以秒為單位定義了一個更新窗,組件從被請求開始到現(xiàn)在的秒數(shù)小于設定值,則一直使用副本。避免了一次http請求。相比Expries,Cache-Control指令提供了更細粒度的控制。詳細內(nèi)容請看大額同學的文章:透過瀏覽器看HTTP緩存

4、減少下載量

減少下載量最有效的方式就是開啟gzip壓縮,gzip是GNU開發(fā)的一種免費格式。壓縮組件通過減小http響應的大小來加快響應速度。HTTP1.1通過使用Accept-Encoding來標識支持的壓縮,如果服務器看到這個標識,會使用請求頭中的一種方式來壓縮響應。并通過Content-Encoding來通知web客戶端。很多網(wǎng)站會壓縮html文件,實際上包括xml跟json在內(nèi)的任何文本都可以壓縮,但圖片和pdf不應該壓縮。根據(jù)經(jīng)驗通??梢詫Υ笥?kb或2kb的文件進行壓縮。壓縮通常能將響應的數(shù)據(jù)量減少70%。壓縮的成本在于:服務器需要耗費額外的cpu進行壓縮,客戶端需要解壓縮。所以需要在cpu的消耗和數(shù)據(jù)塊的大小之間進行取舍。

5、優(yōu)化網(wǎng)絡連接

網(wǎng)絡連接的優(yōu)化主要有三個規(guī)則:使用CDN加速、減少DNS查找、避免重定向

CDN:CDN是地理上分布的web server的集合,用于更高效地發(fā)布內(nèi)容。通?;诰W(wǎng)絡遠近來選擇給具體用戶服務的web server。 這縮短了資源的傳輸響應時間,有效提高web性能。

DNS用于映射主機名和IP地址,一般一次解析需要20~120毫秒。瀏覽器會首先根據(jù)頁面的主機名進行域名解析,在有ISP返回結(jié)果之前頁面不會加載任何內(nèi)容,所以減少DNS查找可以有效降低等待時間。為達到更高的性能,DNS解析通常被多級別地緩存,如由ISP或局域網(wǎng)維護的caching server,本地機器操作系統(tǒng)的緩存(如windows上的DNS Client Service),瀏覽器。IE的缺省DNS緩存時間為30分鐘,F(xiàn)irefox的缺省緩沖時間是1分鐘。 我們能做的是盡量減少一個頁面的主機名,但要在瀏覽器最大并行下載數(shù)跟dns查找之間做權衡。根據(jù)研究,最好將主機名控制在2-4個內(nèi)。

重定向:將一個URL重新路由到另一個URL。重定向功能是通過301和302這兩個HTTP狀態(tài)碼完成的,如:

HTTP/1.1 301 Moved Permanently

Content-Type: text/html

瀏覽器自動重定向請求到Location指定的URL上,重定向的主要問題是降低了用戶體驗。 種最耗費資源、經(jīng)常發(fā)生而很容易被忽視的重定向是URL的最后缺少/,導致自動產(chǎn)生結(jié)尾斜線的原因是,瀏覽器在進行get請求是必須指定一些路徑;如果沒有路徑它就會簡單的使用文檔根。(主機缺少結(jié)尾斜線是不會發(fā)生重定向)缺少結(jié)尾斜線發(fā)生重定向是很多web服務器的默認行為。需要在服務器端設置方可消除。以下圖片是豆瓣的一個url請求:

這14條優(yōu)化規(guī)則在很長的一段時間里發(fā)揮著重要作用,隨著技術的發(fā)展,單單這十四條原則已經(jīng)不能夠滿足前端性能優(yōu)化。

內(nèi)容標簽:

熱門文章

? ? 現(xiàn)在很多企業(yè)都著手于做重慶seo排名,因為SEO是獲取精準流量比較穩(wěn)定且長期發(fā)展好的方式之一,同時也能提升自身企業(yè)的品牌形象,因為SEO本身就是基于用戶體驗優(yōu)化而做的,因此做好SEO

6780

網(wǎng)絡營銷時代,軟文營銷已成為企業(yè)傳播品牌、促進訂單轉(zhuǎn)化的重要手段。不同于硬廣形式,軟文營銷的精華就在于“軟”字,即廣告綿里藏針,要在能提供給用戶有價值內(nèi)容的基礎上進行廣告

?文庫營銷指的是借助一些文庫平臺上傳文檔,通過知識分享來做品牌營銷,目前常見的文庫平臺有百度文庫、360圖書館、道客巴巴、豆丁文庫等。文庫營銷對文檔質(zhì)量要求較高,需要用戶自

網(wǎng)站對于很多的企業(yè)來說,不僅僅是業(yè)務的渠道拓寬,也是多一個網(wǎng)站推廣的途徑和客戶渠道等,很多的企業(yè)雖然有自己的網(wǎng)站,但是重視程度不夠,很多的企業(yè)都只依靠網(wǎng)站就能夠養(yǎng)活一個公

3251

企業(yè)品牌推廣對于企業(yè)的生存來說是極其重要的,如果沒有一個好的推銷渠道的話,可能就會讓自己的商品賣不出去。在新聞中總是看到哪兒有什么產(chǎn)品賣不出去了,形成滯銷,讓個人或是企業(yè)

3209

一方面,不同客戶的建站需求不同;另一方面,網(wǎng)站建設人員的技術水平高低不一;同時,時效、地域因素也會對建站成本有所影響。所以網(wǎng)站建設的報價暫時沒有統(tǒng)一標準,建設費用更是從幾

3027

最先剖析要散播的目的客戶人群的陋習與話動范疇; 精心安排合乎網(wǎng)民愛好的論壇推廣時件或話動; 積淀論談有關社交圈子資源,會對進行論壇推廣出示挺大適用; 搞好數(shù)據(jù)分析,以知道論壇推廣的成功失敗之舉,加以改進。

人們常常會遇上有些人做論壇推廣的當時,以便能短期內(nèi)內(nèi)看到作用,就在每個論談網(wǎng)站上注冊很多的id,花兩三天的時間就把各大論壇上貼的濃濃的全是軟廣,可是隔過段時間回來看,以前公布的全部貼子都被刪的干凈整潔,情況嚴重將會注冊的id也被封的干凈整潔,而針對這類人只有說成愛好者的論壇推廣技巧了。在進到這一議論以前,人們看一下自身是不是存有那樣的難

在互聯(lián)網(wǎng)高速發(fā)展的今天,在眾多同行品牌的強勢競爭下,新品牌想要打開市場并不是一件容易的事兒。但不推廣就難以生存,那么我們應該如何做好新品牌推廣,快速打開市場?云裂變徐國

2930

現(xiàn)在的推廣營銷方式與以前比起來可是多了不少,放在以前也就是還沒有網(wǎng)絡的時侯,商品商家和生產(chǎn)廠家想要把自己生產(chǎn)的和自己銷售的產(chǎn)品或是商品成功推銷出去那可就得想想辦法了。比如

2902

一個生產(chǎn)企業(yè)想要發(fā)展必須要創(chuàng)立自己的品牌,在人們購買東西講究牌子的今天,如果你所生產(chǎn)的產(chǎn)品連個牌子都沒有,恐怕會無人問津的。但是,有了品牌,對于小公司來說若是得到消費者的

2902

說起網(wǎng)絡營銷,讓人們想起了網(wǎng)上購物,比如在剛過去的520,就是一波網(wǎng)購的熱潮,各種打折促銷返利活動讓許多人心動,看花了眼。又比如每年的雙11、在雙12的網(wǎng)上促銷活動可謂是一年之內(nèi)

2855

很多企業(yè)在官網(wǎng)搭建完成之后,便放任不管,既不更新內(nèi)容、也不做任何的排名優(yōu)化,最后網(wǎng)站沒排名、沒流量、沒訪客;即使有排名、有流量導入,但是跳出率極高,依然產(chǎn)生不了任何效益。

2839

隨著網(wǎng)絡營銷、全網(wǎng)覆蓋等口號喊得越來越響,現(xiàn)在有不少的企業(yè)做網(wǎng)絡營銷都是被同行帶起來的,本質(zhì)上對網(wǎng)絡營銷推廣的作用都了解不多。那么網(wǎng)絡推廣好在哪?為什么一定要做好網(wǎng)絡推廣

論壇推廣就是,企業(yè)利用論壇這種網(wǎng)絡交流的平臺,通過文字、圖片、視頻等方式發(fā)布企業(yè)的產(chǎn)品和服務的信息,從而讓目標客戶更加深刻地了解企業(yè)的產(chǎn)品和服務。最終達到企業(yè)宣傳企業(yè)的品牌、加深市場認知度的網(wǎng)絡營銷活動。1、電子公告板(BBS)是虛擬網(wǎng)絡小區(qū)的要素方法,小量的交流信息全是歷經(jīng)BBS進行的,vip歷經(jīng)貼到消息也許回應消息抵達互相聯(lián)系的目地。一些簡

受互聯(lián)網(wǎng)大趨勢影響,很多傳統(tǒng)企業(yè)紛紛著手布局網(wǎng)絡營銷,考慮到企業(yè)自身在營銷經(jīng)驗上有欠缺,不少老板會選擇找全網(wǎng)營銷外包公司合作,這個時候就會出現(xiàn)很多選擇難題。比如說找了10家

2783

隨著社會的發(fā)展和人們消費觀念的改變,現(xiàn)在人們的消費已經(jīng)從單純的商品能使用消費階段到了商品品牌消費階段了。在進行商品購買時總是看商品的品牌,就拿一些年輕人來說吧,對于耐克、

2769

百科營銷是一種以權威知識分享的形式對企業(yè)做有目的性的品牌宣傳,可以有效提高潛在客戶對企業(yè)品牌或產(chǎn)品服務的信任度及認可度,最終達到提升企業(yè)品牌知名度美譽度的雙重作用。那么百

護膚品作為當下大受女性追捧的快消品,行業(yè)競爭激烈,且更新?lián)Q代尤其迅速。那么如何在如此變幻莫測的市場競爭中占領高地呢?這自然少不了大面積的營銷推廣(包括線上和線下),下面全

一、前端seo代碼優(yōu)化注意事項1、提高頁面加載速度。CSS可以用來解決不使用背景圖片的問題,也可以嘗試壓縮背景圖片的大小,你可以在一張圖片上放置幾個圖標,使用CSSsprite,使用背景位置

2650

最新文章