久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

web前端筆試題面試題匯總+前端優化總結大全

時間:2019-05-12 15:20:46下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關的《web前端筆試題面試題匯總+前端優化總結大全》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《web前端筆試題面試題匯總+前端優化總結大全》。

第一篇:web前端筆試題面試題匯總+前端優化總結大全

前端是龐大的,包括HTML、CSS、Javascript、Image、Flash等等各種各樣的資源。前端優化是復雜的,針對方方面面的資源都有不同的方式。那么,前端優化的目的是什么?

1.從用戶角度而言,優化能夠讓頁面加載得更快、對用戶的操作響應得更及時,能夠給用戶提供更為友好的體驗。

2.從服務商角度而言,優化能夠減少頁面請求數、或者減小請求所占帶寬,能夠節省可觀的資源。

總之,恰當的優化不僅能夠改善站點的用戶體驗并且能夠節省相當的資源利用。

前端優化的途徑有很多,按粒度大致可以分為兩類,第一類是頁面級別的優化,例如HTTP請求數、腳本的無阻塞加載、內聯腳本的位置優化等;第二類則是代碼級別的優化,例如Javascript中的DOM操作優化、CSS選擇符優化、圖片優化以及HTML結構優化等等。另外,本著提高投入產出比的目的,后文提到的各種優化策略大致按照投入產出比從大到小的順序排列。

一、頁面級優化

1.減少HTTP請求數

這條策略基本上所有前端人都知道,而且也是最重要最有效的。都說要減少HTTP請求,那請求多了到底會怎么樣呢?首先,每個請求都是有成本的,既包含時間成本也包含資源成本。一個完整的請求都需要經過DNS尋址、與服務器建立連接、發送數據、等待服務器響應、接收數據這樣一個“漫長”而復雜的過程。時間成本就是用戶需要看到或者“感受”到這個資源是必須要等待這個過程結束的,資源上由于每個請求都需要攜帶數據,因此每個請求都需要占用帶寬。另外,由于瀏覽器進行并發請求的請求數是有上限的(具體參見此處),因此請求數多了以后,瀏覽器需要分批進行請求,因此會增加用戶的等待時間,會給用戶造成站點速度慢這樣一個印象,即使可能用戶能看到的第一屏的資源都已經請求完了,但是瀏覽器的進度條會一直存在。

減少HTTP請求數的主要途徑包括:

(1).從設計實現層面簡化頁面

如果你的頁面像百度首頁一樣簡單,那么接下來的規則基本上都用不著了。保持頁面簡潔、減少資源的使用時最直接的。如果不是這樣,你的頁面需要華麗的皮膚,則繼續閱讀下面的內容。

(2).合理設置HTTP緩存

緩存的力量是強大的,恰當的緩存設置可以大大的減少HTTP請求。以有啊首頁為例,當瀏覽器沒有緩存的時候訪問一共會發出78個請求,共600多K數據(如圖1.1),而當第二次訪問即瀏覽器已緩存之后訪問則僅有10個請求,共20多K數據(如圖1.2)。(這里需要說明的是,如果直接F5刷新頁面的話效果是不一樣的,這種情況下請求數還是一樣,不過被

緩存資源的請求服務器是304響應,只有Header沒有Body,可以節省帶寬)

怎樣才算合理設置?原則很簡單,能緩存越多越好,能緩存越久越好。例如,很少變化的圖片資源可以直接通過HTTP Header中的Expires設置一個很長的過期頭;變化不頻繁而又可能會變的資源可以使用Last-Modifed來做請求驗證。盡可能的讓資源能夠在緩存中待得更久。關于HTTP緩存的具體設置和原理此處就不再詳述了,有興趣的可以參考下列文章:

HTTP1.1協議中關于緩存策略的描述

Fiddler HTTP Performance中關于緩存的介紹

(3).資源合并與壓縮

如果可以的話,盡可能的將外部的腳本、樣式進行合并,多個合為一個。另外,CSS、Javascript、Image都可以用相應的工具進行壓縮,壓縮后往往能省下不少空間。

(4).CSS Sprites

合并CSS圖片,減少請求數的又一個好辦法。

(5).Inline Images

使用data: URL scheme的方式將圖片嵌入到頁面或CSS中,如果不考慮資源管理上的問題的話,不失為一個好辦法。如果是嵌入頁面的話換來的是增大了頁面的體積,而且無法利用瀏覽器緩存。使用在CSS中的圖片則更為理想一些。

(6).Lazy Load Images

這條策略實際上并不一定能減少HTTP請求數,但是卻能在某些條件下或者頁面剛加載時減少HTTP請求數。對于圖片而言,在頁面剛加載的時候可以只加載第一屏,當用戶繼續往后滾屏的時候才加載后續的圖片。這樣一來,假如用戶只對第一屏的內容感興趣時,那剩余的圖片請求就都節省了。有啊首頁曾經的做法是在加載的時候把第一屏之后的圖片地址緩存在Textarea標簽中,待用戶往下滾屏的時候才“惰性”加載。

2.將外部腳本置底

前文有談到,瀏覽器是可以并發請求的,這一特點使得其能夠更快的加載資源,然而外鏈腳本在加載時卻會阻塞其他資源,例如在腳本加載完成之前,它后面的圖片、樣式以及其他腳本都處于阻塞狀態,直到腳本加載完成后才會開始加載。如果將腳本放在比較靠前的位置,則會影響整個頁面的加載速度從而影響用戶體驗。解決這一問題的方法有很多,在這里有比較詳細的介紹(這里是譯文和更詳細的例子),而最簡單可依賴的方法就是將腳本盡可能的往后挪,減少對并發下載的影響。

3.異步執行inline腳本

inline腳本對性能的影響與外部腳本相比,是有過之而無不及。首頁,與外部腳本一樣,inline腳本在執行的時候一樣會阻塞并發請求,除此之外,由于瀏覽器在頁面處理方面是單線程的,當inline腳本在頁面渲染之前執行時,頁面的渲染工作則會被推遲。簡而言之,inline腳本在執行的時候,頁面處于空白狀態。鑒于以上兩點原因,建議將執行時間較長的inline腳本異步執行,異步的方式有很多種,例如使用script元素的defer屬性(存在兼容性問題和其他一些問題,例如不能使用document.write)、使用setTimeout,此外,在HTML5中引入了Web Workers的機制,恰恰可以解決此類問題。

4.Lazy Load Javascript

隨著Javascript框架的流行,越來越多的站點也使用起了框架。不過,一個框架往往包括了很多的功能實現,這些功能并不是每一個頁面都需要的,如果下載了不需要的腳本則算得上是一種資源浪費-既浪費了帶寬又浪費了執行花費的時間。目前的做法大概有兩種,一種是為那些流量特別大的頁面專門定制一個專用的mini版框架,另一種則是Lazy Load。YUI則使用了第二種方式,在YUI的實現中,最初只加載核心模塊,其他模塊可以等到需要使用的時候才加載。

5.將CSS放在HEAD中

如果將CSS放在其他地方比如BODY中,則瀏覽器有可能還未下載和解析到CSS就已經開始渲染頁面了,這就導致頁面由無CSS狀態跳轉到CSS狀態,用戶體驗比較糟糕。除此之外,有些瀏覽器會在CSS下載完成后才開始渲染頁面,如果CSS放在靠下的位置則會導致瀏覽器將渲染時間推遲。

6.異步請求Callback

在某些頁面中可能存在這樣一種需求,需要使用script標簽來異步的請求數據。類似:

Javascript: /*Callback函數*/ function myCallback(info){ //do something here }

HTML:

cb返回的內容: myCallback('Hello world!');像以上這種方式直接在頁面上寫

主站蜘蛛池模板: 精品无码久久久久国产手机版| 国产精品无码无需播放器| 欧美日韩一区二区三区自拍| 国产精品资源一区二区| 国产免费的又黄又爽又色| 2019日韩中文字幕mv| 青草伊人久久综在合线亚洲观看| 成年女人粗暴毛片免费观看| 日日碰日日摸夜夜爽无码| 狠狠色噜噜狠狠狠888米奇视频| 成年在线网站免费观看无广告| 欧美浓毛大泬视频| 国产强奷在线播放免费| 国产综合精品女在线观看| 自拍视频亚洲综合在线精品| 中文字幕无码精品亚洲资源网| 亚洲成av人片在线观看无线| 欧美极品少妇性运交| 伊人久久大香线蕉无码不卡| 国产成人欧美视频在线观看| 国产人妻久久精品二区三区老狼| 黑巨人与欧美精品一区| 国产欧美综合一区二区三区| 国产精品亚韩精品无码a在线| 国精品无码一区二区三区在线| 曰本女人牲交全视频免费播放| 无码av天天av天天爽| 欧美伊人色综合久久天天| 爆乳熟妇一区二区三区| 久久久久久一区国产精品| 国产午夜理论不卡在线观看| 西西人体大胆www44he七| 人禽伦免费交视频播放| 精品无人码麻豆乱码1区2区| 亚洲综合色丁香婷婷六月图片| 成人欧美一区二区三区的电影| 疯狂的欧美乱大交| 天堂av无码av在线a√| 老师粉嫩小泬喷水视频90| 色哟哟精品网站在线观看| 亚洲男人片片在线观看|