a毛片毛费观看-a毛片在线-a毛片在线观看-a毛片在线免费观看-国产成人综合洲欧美在线-国产成人综合高清在线观看

始創(chuàng)于2000年 股票代碼:831685
咨詢熱線:0371-60135900 注冊有禮 登錄
  • 掛牌上市企業(yè)
  • 60秒人工響應(yīng)
  • 99.99%連通率
  • 7*24h人工
  • 故障100倍補償
全部產(chǎn)品
您的位置: 網(wǎng)站首頁 > 幫助中心>文章內(nèi)容

前端開發(fā):5173首頁前端性能優(yōu)化實踐

發(fā)布時間:  2012/7/24 9:23:17

從制定計劃,到前后端的開發(fā),最后到測試以及上線,歷時4個月,5173首頁前端性能優(yōu)化項目終于順利上線,并達到了預(yù)期的性能優(yōu)化目標。這次的項目并不是改版,而是原來首頁的設(shè)計和功能不變,只做重構(gòu)和優(yōu)化。雖然項目名叫前端的性能優(yōu)化,但也并不僅僅是前端單方面的工作,要想徹底的把優(yōu)化做好,就需要前后端的通力配合。

歷史背景

老首頁應(yīng)該是09年上線的,首頁也是各部門爭奪資源的地方,大家都想在首頁有一席之地,各部門在首頁都有各自的小豆腐塊,如果有新項目的上線,大多是打補丁的方式,并且唯一的規(guī)范就是能保證功能正常運行,至于性能方面,那是很遙遠的事。苦逼的是開發(fā)人員,每次有首頁的修改都是擔(dān)驚受怕的,怕改了這個那個又出問題,歷史原因造成的問題越來越多。

最先看不下去的應(yīng)該是前端人員,因為首頁在不斷的修修補補中,性能已經(jīng)差到前端人員覺得很沒面子的地步了。但是看不下去也僅僅是看不下去,沒法采取實質(zhì)性的措施來改善,因為這牽涉到各部門的利益,也如上面說的,優(yōu)化不僅僅在于前端,于是前端人員也只能向上面反映問題。到了今年,終于領(lǐng)導(dǎo)也看不下去了,某領(lǐng)導(dǎo)在海外訪問我司的818和5173首頁,對比起來前者首頁很快(插播一句,818首頁前端開發(fā)人員也正是我^_^),后者首頁很慢,差別較大。于是在領(lǐng)導(dǎo)重視的推動下,5173首頁的前端性能優(yōu)化項目才經(jīng)過批準,開發(fā)人員終于可以放手大膽的折騰了。

問題分析

在動手前要制定計劃,制定計劃要從解決實際問題出發(fā),先來看看老首頁的問題,這是我在制定計劃時收集的相關(guān)數(shù)據(jù):

1、請求數(shù)過多,其中CSS外鏈數(shù)有12個,JavaScript外鏈數(shù)竟有41個;

2、頁面總體積過大,很多靜態(tài)資源都沒加gzip,動態(tài)站點的JS甚至都沒有壓縮過;

3、資源占用嚴重,在IE6下滾動頁面時CPU占用率高達80%以上,內(nèi)存泄漏也很嚴重;

4、廣告系統(tǒng),廣告圖片都是以document.write的方式在加載,頁面堵塞的情況很嚴重;

5、頁面有7個iframe;

6、數(shù)據(jù)源接口混亂;

7、頁面加載速度過慢,有白屏現(xiàn)象,首屏完成加載很慢;

上面的數(shù)據(jù)讓你很震驚,這也說明了有很大的優(yōu)化空間。找出了問題所在,接下來才有具體的實施方向。總之,無論是常規(guī)的方法,亦或是奇淫技巧,目標只有三個字,“快,更快”。

具體實施

雖然粗看頁面的內(nèi)容并不是很多,但是具體到功能模塊,都是很費時費力的。我們老大有一句很經(jīng)典的話,“通常我會問面試人員一個問題,如果你獨自來做5173首頁的前端工作,多久能完成?如果答案只有一個星期,要么是沒看過頁面,要么就是很不專業(yè)。”我就獨自花了一個多月的時間才完成首頁的前端開發(fā)工作。下面來說說具體的實施吧。

HTML&CSS 的重構(gòu)

頁面的設(shè)計和功能沒有變動,但是HTML頁面還是要做徹底的重構(gòu),這里我也嘗試了使用 HTML5 的新標簽來對頁面進行布局。CSS 的重構(gòu)也是理所當(dāng)然的,原來有12個外鏈的 CSS,這些都要統(tǒng)統(tǒng)干掉的,有些模塊如果不止首頁有用到,就需要模塊化,該放到公用文件就放到公用文件中,在開發(fā)的時候可以分多個模塊,然后使用 @import到一個文件中,打包發(fā)布的時候再合并成一個文件。這需要把握好一個度,即要合理利用緩存,又要避免單文件過大,同時也要做好模塊化。

老首頁有很多 CSS 選擇器過長的問題,可能一個 CSS 選擇器的組合長達6-7個也是常有的事,CSS 選擇器過長不僅僅是性能方面的影響,同時也因為 CSS 權(quán)值的關(guān)系,給后期維護帶來了很多的麻煩。應(yīng)該多使用 class 來定義選擇器,再加上 tag 選擇器的組合,最多3個選擇器的組合就能滿足絕大多數(shù)的需求了,另外在 CSS 的編寫方面禁止使用 id 選擇器和 !important,養(yǎng)成良好的 CSS 編寫習(xí)慣很重要。

JavaScript 的重構(gòu)

JavaScript的重構(gòu)太迫切了,原來竟有41個JavaScript 外鏈文件,當(dāng)然這些外鏈也包括了15個廣告的外鏈,廣告的優(yōu)化我稍后再說,但是還剩下26個外鏈 JavaScript。這些臃腫不堪的 JavaScript文件即是造成頁面加載堵塞的元兇,也是系統(tǒng)資源占用的蛀蟲,這是整個項目的難點之一。

重新梳理了四級聯(lián)動搜索的業(yè)務(wù)邏輯,并對四級聯(lián)動搜索的交互功能做優(yōu)化,增強用戶體驗。這個模塊的 ajax 交互功能較多,最大的 JSON 數(shù)據(jù)包竟然有94.4KB,此時合理的利用當(dāng)前頁面的緩存功能($.fn.data)很重要。體積最大的 JSON 數(shù)據(jù)包在頁面 Dom Ready 后進行加載,然后拼裝第一屏的 HTML 代碼并緩存,當(dāng)用戶按字母索引選擇游戲的時候再到已加載完的 JSON 數(shù)據(jù)包中尋找相應(yīng)的數(shù)據(jù)去拼裝 HTML 代碼,然后緩存該索引的 HTML 代碼。如果接下來再選擇區(qū)、服、交易類型時,再到服務(wù)器去取相應(yīng)的 JSON 數(shù)據(jù),拼裝成 HTML 代碼后進行緩存,此時只緩存最后一次的選擇結(jié)果。

\

便民中心也同樣是首頁業(yè)務(wù)邏輯很復(fù)雜的模塊,涉及到很多的ajax交互以及表單的操作。各個TAB中的表單是根據(jù)請求的JSON數(shù)據(jù)來生成HTML結(jié)構(gòu)的,原來是每次點擊TAB都會請求一次數(shù)據(jù),然后生成HTML結(jié)構(gòu),每切換一次TAB都要請求,再生成,這真得很二。同樣的數(shù)據(jù)和結(jié)構(gòu)只要請求一次,并生成一次即可,這種重復(fù)的操作是赤裸裸的浪費資源。該模塊的JavaScript原來請求的動態(tài)站點的文件,沒有做緩存也沒做過壓縮,每次頁面加載都在這里阻塞一小會。這里的服務(wù)端的數(shù)據(jù)源接口也很亂,開發(fā)人員缺乏規(guī)范化數(shù)據(jù)接口的概念。這里的諸多問題,我已無力吐槽了。最后也是重新梳理蛋痛的業(yè)務(wù)邏輯,重構(gòu)代碼。

\

延遲加載,提升首屏的加載速度

當(dāng)用戶打開一個很長的網(wǎng)頁時,首屏內(nèi)容的加載給了最直觀的速度體驗。所以,讓首屏盡快的完成加載也是用戶衡量該頁面是否夠“快”的最主要的因素。5173的首頁,圖片基本都集中在下面的位置,讓下面的這些圖片全部都延遲加載就可以盡可能快的提升首屏的加載速度。常見的圖片延遲加載技術(shù)想必大家都不會陌生了,這里就不復(fù)述。在 TAB 內(nèi)容中也同樣有很多圖片,這里也讓它們在觸發(fā) TAB 菜單的時候再進行加載。給圖片在HTML代碼中添加固定的尺寸自然也不再話下。so easy? no!

圖片中不僅僅有業(yè)務(wù)配置的圖片,也有來自第三方廣告系統(tǒng)的圖片(包括首屏的輪播大圖也是此類型的)。這些廣告圖片的 URL 是一個 JavaScript 鏈接,其中包含了使用 document.write 的方式來加載廣告圖片的代碼。還有些 TAB 中包含了使用 iframe 嵌入到頁面的合作站點的內(nèi)容。廣告圖片以及 iframe 都是阻塞頁面加載的元兇。

最初的想法是重新開發(fā)一套廣告系統(tǒng),換一種廣告加載方式,但是開發(fā)成本太高。最后想到了使用 textarea 來延遲加載廣告和 iframe,玉伯提供的這種方法確實挺好用的。textarae 是個好東西,不論是普通的 HTML 代碼亦或是 CSS、JavaScript 代碼,都可以扔到里面去實現(xiàn)延遲加載。廣告圖片的優(yōu)化比較麻煩,我在另一篇文章中有詳細的介紹。有了 textarea,很多內(nèi)容都可以像實現(xiàn)圖片延遲加載那樣來實行延遲加載,在 TAB 內(nèi)容中的 iframe 也可以在觸發(fā) TAB 菜單時再去加載 iframe。

正是這些各種延遲加載內(nèi)容的奇淫技巧在最大限度上提升了網(wǎng)頁首屏的加載速度。但是延遲加載內(nèi)容帶來的副作用需要說明,對于一些比較重要的內(nèi)容,需要考慮到對 SEO 的影響。

服務(wù)端的優(yōu)化

前端能做得基本都說完了,再來說說服務(wù)端的優(yōu)化工作吧。原來服務(wù)端提供給前端的數(shù)據(jù)源都是從各個站點過來的,前端需要跟各個部門的開發(fā)人員打交道,并且他們提供的數(shù)據(jù)源在性能上也比較慢。經(jīng)過協(xié)商決定將各數(shù)據(jù)源匯總到一臺中間服務(wù)器上,前端統(tǒng)一從這臺中間服務(wù)器中去取數(shù)據(jù),服務(wù)器端之間的通訊都加上一定的緩存時間,這樣就解決了數(shù)據(jù)源慢和不統(tǒng)一的問題。

針對頁面總體積過大的問題,代碼的重構(gòu)確實能減小不少的體積,另外靜態(tài)資源一律都要添加gzip,僅僅是添加gzip,帶來的性能提升也是比較明顯的。

合理的利用瀏覽器端的緩存也是很重要的,除了登錄信息以及 cookie 的這種時效性較高的請求外,所有能添加 cache-control 的請求都加上了 max-age 的過期時間。關(guān)于瀏覽器端的緩存添加,這里有一篇比較詳細的文章 Cache them if you can。緩存的添加也會給更新帶來麻煩,所以要有相應(yīng)的方法來清除緩存,給靜態(tài)資源的請求加上時間戳即可。

另外服務(wù)端這次也大膽的采用了 varnish 作為緩存加速服務(wù)器,這在國內(nèi)大型網(wǎng)站中應(yīng)該還不多見。

優(yōu)化成果

做了這么多工作是時候看看優(yōu)化成果了,先來看一組數(shù)據(jù)對比:

優(yōu)化前后的請求數(shù)對比:

\

請求數(shù)的大大減少,緩解了服務(wù)器的壓力,可以撤掉很多服務(wù)器了。

優(yōu)化前后的靜態(tài)資源的文件體積對比,沒有包含ajax數(shù)據(jù)等其他文件體積:

\

從文件體積的對比來看,優(yōu)化后節(jié)省了494KB的下載量,假若按照日PV1000000(估值,實際值遠大于該值,實際值不便透露)來進行計算,那么每天就可以節(jié)省流量470GB。

優(yōu)化前后的加載時間對比,這是在同樣的網(wǎng)絡(luò)環(huán)境下同時測試了淘寶和拍拍來進行對比,測試軟件為基于 IE9 的 webWatch,每次測試都是清除緩存,分多次測試得到的一個平均值:

\

關(guān)于加載速度的分析,淘寶和拍拍的首屏的圖片較多,所以首屏的速度快,但是總加載時間要長很多,當(dāng)然他們的下載量也要大很多,5173的首屏是DOM數(shù)較多,下載量也小很多,所以總時間和首屏?xí)r間相當(dāng)接近。這里說得總下載量是頁面初次加載完成的總下載量,由于都用到延遲加載技術(shù),向下滾動時又會有圖片加載,這些時間是不計算在內(nèi)的。

到底應(yīng)該如何來衡量網(wǎng)頁加載的快慢?此次的優(yōu)化我沒有用 yslow 和 pagespeed 等測試分數(shù)的軟件,而是以實際的加載速度為優(yōu)化的目標,首屏的加載速度提升就是最符合實際的說明。如果一個網(wǎng)站打開半天還是白屏,相信大多數(shù)人都會覺得很慢。這就是實際的體驗,測分軟件是反映不出來的。


本文出自:億恩科技【www.ibaoshan.net】

服務(wù)器租用/服務(wù)器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]

  • 您可能在找
  • 億恩北京公司:
  • 經(jīng)營性ICP/ISP證:京B2-20150015
  • 億恩鄭州公司:
  • 經(jīng)營性ICP/ISP/IDC證:豫B1.B2-20060070
  • 億恩南昌公司:
  • 經(jīng)營性ICP/ISP證:贛B2-20080012
  • 服務(wù)器/云主機 24小時售后服務(wù)電話:0371-60135900
  • 虛擬主機/智能建站 24小時售后服務(wù)電話:0371-60135900
  • 專注服務(wù)器托管17年
    掃掃關(guān)注-微信公眾號
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權(quán)所有  地址:鄭州市高新區(qū)翠竹街1號總部企業(yè)基地億恩大廈  法律顧問:河南亞太人律師事務(wù)所郝建鋒、杜慧月律師   京公網(wǎng)安備41019702002023號
      0
     
     
     
     

    0371-60135900
    7*24小時客服服務(wù)熱線

     
     
    久久精品人人做人人爽97| 亚洲欧洲自拍拍偷精品网314| 中文字幕无码精品三级在线电影 | 天天想你在线视频免费观看高清版| 国外AV无码精品国产精品| 艳妇臀荡乳欲伦交换H漫画小说| 内射口爆少妇麻豆| 顶级欧美熟妇XXXXX欧美精品| 无码免费毛片手机在线无卡顿| 精产一二三产区区别在哪| 在线 亚洲 国产 欧美| 破了亲妺妺的处免费视频国产| 国产AⅤ夜夜欢一区二区三区| 亚洲国产精品久久久天堂麻豆宅男 | 私人医生H1忘记密码了怎么办| 果冻传媒播放观看免费| SQUIRT VIDEO喷水抽| 无码人妻一区二区三区一| 妺妺窝人体色WWW聚色窝丿| 隔着肚兜偷揉酥乳含乳子| 亚洲V欧美V国产V在线观看| 美女露胸 0无挡挡| 高清欧美性猛XXXX黑人| 又硬又粗又长又爽免费看| 日韩丰满少妇无码内射| 国内久久婷婷五月综合欲色广啪| PYTHON人马大战CSDN| 亚洲日韩欧洲乱码AV夜夜摸| 欧亚尺码专线欧洲B1B1| 国产精品无码A∨精品影院APP| 亚洲中文字幕无码中文| 日本乱熟人妻精品乱码涩爱| 国内精品久久久久久无码不卡| 24小时日本免费观看WWW| 婷婷国产三区四区| 久久毛片免费看一区二区三区 | 成人免费A级毛片免费| 亚洲不卡无码WWW一区二区三区| 日产乱码一二三区别免费下| 久久无码中文字幕免费影院| 国产乱色精品成人免费视频| 中国蓝CHINABLUE| 他趴在两腿中间舔我私密有事吗| 久久久久久久久久精品电影 | 亚洲国产成人久久一区二区三区| 秋霞A级毛片在线看| 国产A国产片国产| 国产肉丝袜在线观看| 50岁熟妇的呻吟声对白| 我的初苞被强开了| 激情内射日本一区二区三区| CHINESE熟女熟妇2乱| 亚洲AV成人片乱码色午夜 | YOUJIZZ中国少妇| 亚洲AV成人无码人在线观看堂 | 色噜噜狠狠狠狠色综合久| 精品少妇av无码美人妻| H漫全彩纯肉无码网站| 性色AV一区二区三区无码| 男生女生一起相差差差| 激情伊人五月天久久综合| 高潮爽死抽搐白浆GIF视频| 24种男女插秧法| 亚洲人成精品久久久久| 无码免费一区二区三区免费播放| 人妻少妇精品中文字幕AV| 韩国精品福利一区二区三区| 大帝AV在线一区二区三区| 18日韩xxxx| 午夜精品久久久久久久无码| 男生把自己的手到女生的QQ里 | 亚洲乱码中文字幕久久孕妇黑人| 日本高清在线观看视频WWW色| 久亚洲一线产区二线产区三线产区| 放荡的闷骚娇妻H| 野花日本大全免费观看10电影| 玩小雪跪趴把腿分到最大影视频| 漂亮人妻被强玩波多野结衣| 麻豆国产97在线 | 欧洲| 国产美女精品AⅤ在线| 超碰97人人做人人爱2020| 亚洲一线产区二线产区区别| 色先锋AV资源中文字幕| 久久久久国产精品人妻AⅤ蜜臀| 国产沙发午睡系列999| 第一夜被弄得又红又肿| FREE性丰满HD性欧美| 在线观看AV网站永久免费观看| 亚洲国产成人极品综合| 无码人妻久久久一区二区三区| 日本打扑克啪啪超爽网站| 精品无码中文字幕不卡| 国产欧美精品一区二区色综合| 二三四五六七无产乱码| YSL千人千色T9T9T9T9| 自拍偷在线精品自拍偷无码专区 | 国产成人精品福利一区二区三区| 在线精品国精品国产尤物| 亚洲国产精品无码久久青草 | 中央气象台1一7天降水量预报图 | 短裙公车被直接进入| SUNTEK中老年妈妈| 最新的美国ZOOM动物| 一夲道中文字幕AV高清片 | 午夜精品一区二区三区在线观看| 少妇风流AAAAA毛片| 免费A级毛片无码A∨奶水在线| 国产美女遭强高潮开双腿| 俄罗斯1317大但人文艺术| VICTORYDAY刺激性另类| 91精品人妻一区二区三在线 | 国产偷伦视频片免费视频| 国产操熟女性爱导航| 成码无人AV片在线电影无下载| FREE性满足孕妇VⅠDE0S| 18禁止导深夜福利备好纸巾| 在线精品免费视频无码的| 亚洲在AV极品无码高清| 亚洲精品无码永久中文字幕| 天干天干啦夜天干天天爽| 人妻熟女一区二区AⅤ| 久久久久久久精品无码Av少妇| 皇帝在御花园进入贵妃的小说| 国产午夜精品一区二区三区不卡| 差差漫画在线观看登录页面弹窗| ⅩXXⅩ互换人妻四人互换| 亚洲色成人网站WWW永久小说| 亚洲AV无码国产精品色午友情链| 色噜噜狠狠成人中文综合 | 国产内射老熟女AAAA∵| 国产精华液一区二区区别| JESSICAJAMES护士性| 91夜色精品偷窥熟女精品网站 | 久久精品夜色噜噜亚洲A∨| 精品人妻AV区乱码| 国产成人精品无码青草| 丰满熟妇乱子又伦| AⅤ一区二区三区无卡无码| 2022色婷婷综合久久久| 中文字幕无码AV不卡一区 | DIPTYQUE含羞草香薰| 97在线无码免费人妻短视频| 亚洲熟妇AV一区二区三区下载 | 丰满岳跪趴高撅肥臀| 东北妇女精品BBWBBW| 大香煮伊在2020一二三久| 丁香花高清在线观看完整版| 成人免费视频一区二区| 成人H动漫无码网站久久| 波多野结衣加勒比东京热| 正在播放国产对白孕妇作爱| 一二三四免费观看视频中国| 一二三四免费观看在线中文版| 伊人狠狠色丁香婷婷综合| 亚洲AV无码专区电影在线观看| 色欲AV蜜臀AV一区在线| 日韩无码一区视频| 欧美ZC0O人与善交的最新章节| 久久国产午夜精品理论片34页| 国产男男猛烈无遮挡A片小说| 国产精品JIZZ在线观看无码| 把腿张开老子臊烂你| 最新国产精品拍自在线观看| 中无码人妻丰满熟妇啪啪| 18禁无遮挡啪啪摇乳动态图| 60老熟女多次高潮露脸视频| 88久久精品无码一区二区毛片 | 国偷自产一区二区免费| 韩国三级HD中文字幕| 国产成人剧情AV麻豆映画| 成年午夜免费韩国做受| 成人精品一区二区三区在线观看 | 国产精华液一二三区别在哪| 国产精品无码无卡无需播放器| 国产蜜臀AV无码一区二区三区| 国产免费看MV大片的软件| 国产自偷在线拍精品热| 精品国产人成亚洲区| 国产亚洲精品精品国产亚洲综合| 国内精品伊人久久久久网站| 激情无码人妻又粗又大| 久久99国产精品久久99| 红桃视频成人传媒| 九九九九精品视频在线观看| 久久久久久国产精品免费免费| 两个女人互添下身爽舒服小说| 精品一区二区成人精品| 久久久久精品精品6精品精品| 麻豆传播媒体免费版官网 | 高潮VPSWINDOWS国产乱| 国产福利日本一区二区三区| 国产午夜福利内射青草| 激情五月丁香六月综合AVXXXX| 久久久精品波多野结衣| 噜噜狠狠色综合久色A站网址| 欧美成人一区二区三区不卡| 日本JAPANESE护士人妻| 四虎成人永久在线精品免费| 午夜亚洲WWW湿好大| 玩弄JaPan白嫩少妇一区二区|