HOME 首頁
SERVICE 服務(wù)產(chǎn)品
XINMEITI 新媒體代運營
CASE 服務(wù)案例
NEWS 熱點資訊
ABOUT 關(guān)于我們
CONTACT 聯(lián)系我們
創(chuàng)意嶺
讓品牌有溫度、有情感
專注品牌策劃15年

    前端減少頁面加載時間的方法(前端減少頁面加載時間的方法有哪些)

    發(fā)布時間:2023-04-14 00:31:27     稿源: 創(chuàng)意嶺    閱讀: 68        

    大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于前端減少頁面加載時間的方法的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。

    開始之前先推薦一個非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計劃、工作報告、論文、代碼、作文、做題和對話答疑等等

    只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,越精準,寫出的就越詳細,有微信小程序端、在線網(wǎng)頁版、PC客戶端

    官網(wǎng):https://ai.de1919.com。

    創(chuàng)意嶺作為行業(yè)內(nèi)優(yōu)秀的企業(yè),服務(wù)客戶遍布全球各地,如需了解SEO相關(guān)業(yè)務(wù)請撥打電話175-8598-2043,或添加微信:1454722008

    本文目錄:

    前端減少頁面加載時間的方法(前端減少頁面加載時間的方法有哪些)

    一、如何進行前端優(yōu)化

    1.減少 HTTP 請求....

    2.使用 HTTP2

    3.使用服務(wù)端渲染

    4.靜態(tài)資源使用 CDN

    5.將 CSS 放在文件頭部,JavaScript 文件放 ...

    6.使用字體圖標 iconfont 代替圖片圖標

    7.善用緩存,不重復(fù)加載相同的資源

    8.壓縮文件

    9.圖片優(yōu)化

    (1).圖片延遲加載

    (2). 響應(yīng)式圖片

    (3). 調(diào)整圖片大小

    (4). 降低圖片質(zhì)量

    (5). 盡可能利用 CSS3 效果代替圖片

    (6). 使用 webp 格式的圖片

    10. 通過 webpack 按需加載代碼,提取第三庫代碼,減少 ES6 轉(zhuǎn)為 ES5 的冗余代碼

    11. 減少重繪重排

    12. 使用事件委托

    13. 注意程序的局部性

    14. if-else 對比 switch

    15. 查找表

    16. 避免頁面卡頓

    17. 使用 requestAnimationFrame 來實現(xiàn)視覺變化

    18. 使用 Web Workers

    19. 使用位操作

    20. 不要覆蓋原生方法

    21. 降低 CSS 選擇器的復(fù)雜性

    (1). 瀏覽器讀取選擇器,遵循的原則是從選擇器的右邊到左邊讀取。

    (2). CSS 選擇器優(yōu)先級

    22. 使用 flexbox 而不是較早的布局模型

    23. 使用 transform 和 opacity 屬性更改來實現(xiàn)動畫

    24. 合理使用規(guī)則,避免過度優(yōu)化

    性能優(yōu)化主要分為兩類:

      • 加載時優(yōu)化

      • 運行時優(yōu)化

    二、如何對前端性能進行優(yōu)化

    前端開發(fā)代碼優(yōu)化、可維護性、瀏覽器兼容性是非常重要的課題。從實際的工程應(yīng)用角度出發(fā),最常遇見的前端優(yōu)化問題。前端性能進行優(yōu)化規(guī)則,基本可以涵蓋現(xiàn)在前端大部分的性能優(yōu)化原則了,很多更加geek和精細優(yōu)化方法都是從這些原則里面延伸出來的。

    前端性能進行優(yōu)化都有哪些規(guī)則

    1. 減少HTTP請求次數(shù)

      盡量合并圖片、CSS、JS。比如加載一個頁面有5個css文件的話,把這個5個文件合成一個的話,就只需要發(fā)出一次http請求,節(jié)省網(wǎng)絡(luò)請求時間,加快頁面的加載。

    2. 使用CDN

    網(wǎng)站上靜態(tài)資源即css、js全都使用cdn分發(fā),包括圖片

    3. 避免空的src和href

    當link標簽的href屬性為空、script標簽的src屬性為空的時候,瀏覽器渲染的時候會把當前頁面的URL作為它們的屬性值,從而把頁面的內(nèi)容加載進來作為它們的值。所以要避免犯這樣的疏忽。

    4. 為文件頭指定Expires

    Exipres是用來設(shè)置文件的過期時間的,一般對css、js、圖片資源有效。 他可以使內(nèi)容具有緩存性,這樣下回再訪問同樣的資源時就通過瀏覽器緩存區(qū)讀取,不需要再發(fā)出http請求。如下例子:

    新浪微博的這個css文件的Expires時間是2016-5-04 09:14:14.

    5. 使用gzip壓縮內(nèi)容

    gzip能夠壓縮任何一個文本類型的響應(yīng),包括html,xml,json。大大縮小請求返回的數(shù)據(jù)量。

    6. 把CSS放到頂部

    網(wǎng)頁上的資源加載時從上網(wǎng)下順序加載的,所以css放在頁面的頂部能夠優(yōu)先渲染頁面,讓用戶感覺頁面加載很快。

    7. 把JS放到底部

    加載js時會對后續(xù)的資源造成阻塞,必須得等js加載完才去加載后續(xù)的文件 ,所以就把js放在頁面底部最后加載。

    8. 避免使用CSS表達式

    舉個css表達式的例子

    font-color: expression( (new Date()).getHours()%3 ? “#FFFFFF" : “#AAAAAA" );

    這個表達式會持續(xù)的在頁面上計算樣式,影響頁面的性能。并且css表達式只被IE支持。

    9. 將CSS和JS放到外部文件中

    目的是緩存文件,可以參考原則4。 但有時候為了減少請求,也會直接寫到頁面里,需根據(jù)PV和IP的比例權(quán)衡。

    10. 權(quán)衡DNS查找次數(shù)

    減少主機名可以節(jié)省響應(yīng)時間。但同時,需要注意,減少主機會減少頁面中并行下載的數(shù)量。

    IE瀏覽器在同一時刻只能從同一域名下載兩個文件。當在一個頁面顯示多張圖片時,IE 用戶的圖片下載速度就會受到影響。所以新浪會搞N個二級域名來放圖片。

    下面是新浪微博的圖片域名,我們可以看到他有多個域名,這樣可以保證這些不同域名能夠同時去下載圖片,而不用排隊。不過如果當使用的域名過多時,響應(yīng)時間就會慢,因為不用響應(yīng)域名時間不一致。

    11. 精簡CSS和JS

    這里就涉及到css和js的壓縮了。比如下面的新浪的一個css文件,把空格回車全部去掉,減少文件的大小?,F(xiàn)在的壓縮工具有很多,基本主流的前端構(gòu)建工具都能進行css和js文件的壓縮,如grunt,glup等。

    12. 避免跳轉(zhuǎn)

    有種現(xiàn)象會比較坑爹,看起來沒什么差別,其實多次了一次頁面跳轉(zhuǎn)。比如當URL本該有斜杠(/)卻被忽略掉時。例如,當我們要訪問 http:// baidu.com 時,實際上返回的是一個包含301代碼的跳轉(zhuǎn),它指向的是 http:// baidu.com/ (注意末尾的斜杠)。在nginx服務(wù)器可以使用rewrite;Apache服務(wù)器中可以使用Alias 或者 mod_rewrite或者the DirectorySlash來避免。

    另一種是不用域名之間的跳轉(zhuǎn), 比如訪問 http:// baidu.com/bbs 跳轉(zhuǎn)到 http:// bbs.baidu.com/ 。那么可以通過使用Alias或者mod_rewirte建立CNAME(保存一個域名和另外一個域名之間關(guān)系的DNS記錄)來替代。

    13. 刪除重復(fù)的JS和CSS

    重復(fù)調(diào)用腳本,除了增加額外的HTTP請求外,多次運算也會浪費時間。在IE和Firefox中不管腳本是否可緩存,它們都存在重復(fù)運算JavaScript的問題。

    14. 配置ETags

    它用來判斷瀏覽器緩存里的元素是否和原來服務(wù)器上的一致。比last-modified date更具有彈性,例如某個文件在1秒內(nèi)修改了10次,Etag可以綜合Inode(文件的索引節(jié)點(inode)數(shù)),MTime(修改時間)和Size來精準的進行判斷,避開UNIX記錄MTime只能精確到秒的問題。 服務(wù)器集群使用,可取后兩個參數(shù)。使用ETags減少Web應(yīng)用帶寬和負載

    15. 可緩存的AJAX

    異步請求同樣的造成用戶等待,所以使用ajax請求時,要主動告訴瀏覽器如果該請求有緩存就去請求緩存內(nèi)容。如下代碼片段, cache:true就是顯式的要求如果當前請求有緩存的話,直接使用緩存

    $.ajax({      url : 'url',      dataType : "json",      cache: true,      success : function(son, status){                  }

    16. 使用GET來完成AJAX請求

    當使用XMLHttpRequest時,瀏覽器中的POST方法是一個“兩步走”的過程:首先發(fā)送文件頭,然后才發(fā)送數(shù)據(jù)。因此使用GET獲取數(shù)據(jù)時更加有意義。

    17. 減少DOM元素數(shù)量

    這是一門大學(xué)問,這里可以引申出一堆優(yōu)化的細節(jié)。想要具體研究的可以看后面推薦書籍??傊笤瓌t減少DOM數(shù)量,就會減少瀏覽器的解析負擔。

    18. 避免404

    比如外鏈的css、js文件出現(xiàn)問題返回404時,會破壞瀏覽器的并行加載。

    19. 減少Cookie的大小

    Cookie里面別塞那么多東西,因為每個請求都得帶著他跑。

    20. 使用無cookie的域

    比如CSS、js、圖片等,客戶端請求靜態(tài)文件的時候,減少了 Cookie 的反復(fù)傳輸對主域名的影響。

    21. 不要使用濾鏡

    IE獨有屬性AlphaImageLoader用于修正7.0以下版本中顯示PNG圖片的半透明效果。這個濾鏡的問題在于瀏覽器加載圖片時它會終止內(nèi)容的呈現(xiàn)并且凍結(jié)瀏覽器。在每一個元素(不僅僅是圖片)它都會運算一次,增加了內(nèi)存開支,因此它的問題是多方面的。

    完全避免使用AlphaImageLoader的最好方法就是使用PNG8格式來代替,這種格式能在IE中很好地工作。如果你確實需要使用AlphaImageLoader,請使用下劃線_filter又使之對IE7以上版本的用戶無效。

    22. 不要在HTML中縮放圖片

    比如你需要的圖片尺寸是50* 50

    那就不用用一張500*500的大尺寸圖片,影響加載

    23. 縮小favicon.ico并緩存

    三、常見的前端性能優(yōu)化手段都有哪些?都有多大收益

    規(guī)則01:盡量減少HTTP請求

    前端優(yōu)化的黃金準則指導(dǎo)著前端頁面的優(yōu)化策略:只有10%-20%的最終用戶響應(yīng)時間花在接受請求的HTML文檔上,剩下的80%-90%時間花在為HTML文檔所引用的所有組件(圖片、腳本、樣式表等)進行的HTTP請求上。因此,改善響應(yīng)時間的最簡單途徑就是減少組件的數(shù)量,并由此減少HTTP請求的數(shù)量。當然很多人就會說,既然這樣,那我們就減少頁面組件的數(shù)量不就OK了嗎?那你試試,你會掀起一場性能優(yōu)化和產(chǎn)品設(shè)計之間的大PK。

    所以,我們要減少HTTP請求是要平衡性能和設(shè)計的。如果找到這個平衡點呢?書中從以下幾個方面做了介紹,我逐一說明:

    ① 圖片地圖

    初看“圖片地圖”四個字,對非專業(yè)的前端人員來說一頭霧水,我的第一印象就是這樣的,咱們以京東的移動站點為例,右側(cè)用戶和購物車的圖標,正常實現(xiàn)我會選擇如下方式:

    <a href=”用戶跳轉(zhuǎn)頁面URL”>

    <div class=”定義用戶icon顯示的樣式表”></div>

    </a>

    <a href=”購物車跳轉(zhuǎn)頁面URL”>

    <div class=” 定義用戶icon顯示的樣式表”></div>

    </a>

    這種方式無可厚非的,但是兩張圖片就有兩個HTTP請求,這明顯是增加了頁面中的HTTP請求。那么我們可以把這兩個HTTP請求變成一個嗎?

    答案當然是可以的,這就是圖片地圖:允許在一張圖片上關(guān)聯(lián)多個URL,而目標URL的選擇取決于用戶單擊了圖片上的哪個位置。

    這樣上面京東兩個圖標合并成一張圖片,這樣圖片的HTTP請求就減少了一個。

    示例代碼如下:

    <img src=合并后的圖片>

    <map name=”map1”>

    <areashape=”rect” coords=”0,0,40,40” href=”用戶跳轉(zhuǎn)頁面URL”>

    <areashape=”rect” coords=”50,0,90,40” href=”購物車跳轉(zhuǎn)頁面URL”>

    </map>

    不過圖片地圖只支持矩形形狀,其他形狀不支持。

    ② 請CSS喝“雪碧”(CSS Sprites)CSS Sprites一句話:將多個圖片合并到一張單獨的圖片,這樣就大大減少了頁面中圖片的HTTP請求。

    ③ 內(nèi)聯(lián)圖片和腳本使用data:URL(Base64編碼)模式直接將圖片包含在Web頁面中而無需進行HTTP請求。但是此種方法存在明顯缺陷:- 不受IE的歡迎;- 圖片太大不宜采用這種方式,因為Base64編碼之后會增加圖片大小,這樣頁面整體的下載量會變大;- 內(nèi)聯(lián)圖片在頁面跳轉(zhuǎn)的時候不會被緩存。(大圖片可以使用瀏覽器的本地緩存,在首次訪問的時候保存到瀏覽器緩存中,典型的是HTML5的manifest緩存機制以及LocalStorage等)。

    ④ 樣式表的合并將頁面樣式定義、腳本、頁面本身代碼嚴格區(qū)分開,但是樣式表、腳本也不是分割越細越好,因為沒多引用一個樣式表就增加一次HTPP請求,能合并的樣式表盡量合并。一個網(wǎng)站有一個公用樣式表定義,每個頁面只要有一個樣式表就OK啦。

    通過以上四個努力之后,你會發(fā)現(xiàn)你的網(wǎng)頁響應(yīng)時間最多能減少一半,這不是作者說大話,也不是我狂吹,我親手用我的移動網(wǎng)站首頁做了一個嘗試,本地測試之后響應(yīng)時間能減少40%左右。所以減少頁面HTTP請求數(shù)量,是一個很重要的原則。遵循此原則可以同時改善首次訪問和后續(xù)訪問的響應(yīng)時間,而每一個網(wǎng)站的首次響應(yīng)時間會決定用戶之后還來不來的重要原因。

    規(guī)則02:使用內(nèi)容發(fā)布網(wǎng)絡(luò)(CDN的使用)

    什么叫內(nèi)容發(fā)布網(wǎng)絡(luò)(CDN)?它是一組分布在多個不同地理位置的Web服務(wù)器,用于更加有效地向用戶發(fā)布內(nèi)容。主要用于發(fā)布頁面靜態(tài)資源:圖片、css文件、js文件等。如此,能輕易地提高響應(yīng)速度。關(guān)于CDN的具體詳細原理以及優(yōu)缺點,各位可以自行詢問度娘或者google。

    規(guī)則03:添加Expires頭

    瀏覽器使用緩存來減少HTTP請求的數(shù)據(jù),并減小HTTP響應(yīng)的大小,使頁面加載更快。Web服務(wù)器使用Expires頭來告訴瀏覽器它可以使用一個組件的當前副本,直到指定的deadline為止。HTTP規(guī)范中稱此頭為:在這一時間之后響應(yīng)被認為失效。個人對這塊表示不想使用,其實就是一句話,把一些css、js、圖片在首次訪問的時候全部緩存到瀏覽器本地,從我做移動網(wǎng)站的過程中發(fā)現(xiàn),其實沒有這么復(fù)雜,完全可以使用HTML5提供的本地緩存機制就OK了。關(guān)于HTML5本地緩存機制,各位可以查閱相關(guān)資料。后續(xù)我也會對HTML5的緩存機制進行介紹的。

    規(guī)則04:壓縮組件(使用Gzip方式)

    書中關(guān)于壓縮從gzip壓縮方式到如何壓縮講了很多,我想直接跳過,對于做PC網(wǎng)站或者移動網(wǎng)站來說,急需要壓縮的是css文件和js文件,至于如何壓縮,網(wǎng)上有很多在線工具,去挑選一個自己用的順手看的順眼的就好,當然也有人選擇對HTML進行壓縮,這樣也可以。但是實際工作中我沒有這么做。之所謂沒有這么做,是因為我覺得很麻煩。不要鄙視我,畢竟我不是一個真正意義上的前端工程師,哈哈!

    規(guī)則05:將CSS樣式表放在頂部

    如果將css樣式定義放在頁面中或者頁面底部,會出現(xiàn)短暫白屏或者某一區(qū)域短暫白板的情況,這和瀏覽器的運營機制有關(guān)的,不管頁面如何加載,頁面都是逐步呈現(xiàn)的。所以在每做一個頁面的時候,用Link標簽把每一個樣式表定義放在head中。

    規(guī)則06:將javascript腳本放在底部

    瀏覽器在加載css文件時,頁面逐步呈現(xiàn)會被阻止,直到所有css文件加載完畢,所以要把css文件的引用放到head中去,這樣在加載css文件時不會組織頁面的呈現(xiàn)。但是對于js文件,在使用的時候,它下面所有也頁面內(nèi)容的呈現(xiàn)都會被阻塞,將腳本放在頁面越靠下的地方,就意味著越多的內(nèi)容能夠逐步呈現(xiàn)。

    規(guī)則07:避免使用CSS表達式

    CSS表達式是動態(tài)玩CSS的一種很強大的方式,但是強大的同時也存在很高的危險性。因為css表達式的頻繁求值會導(dǎo)致css表達式性能低下。如果真想玩css表達式,可以選用只求值一次的表達式或者使用事件處理來改變css的值。

    規(guī)則08:使用外部javascript和CSS內(nèi)聯(lián)js和css其實比外部文件有更快的響應(yīng)速度,那為什么還要用外部呢?因為使用外部的js和css可以讓瀏覽器緩存他們,這樣不僅HTML文檔大小減少,而且不會增加HTTP請求數(shù)量。另外,使用外部js和css可以提高組件的可復(fù)用性。

    規(guī)則09:減少DNS查詢

    DNS查詢有時間開銷,通常一個瀏覽器查找一個給定主機名的IP地址需要20-120ms。緩存DNS:緩存DNS查詢可以很好地提高網(wǎng)頁性能,一旦緩存了DNS查詢,之后對于相同主機名的請求就無需進行再次的DNS查找,至少短時間內(nèi)不需要。所以在使用頁面中URL、圖片、js文件、css文件等時,不要使用過多不同的主機名。

    規(guī)則10:精簡javascript

    如何精簡?

    其實W3Cfuns已經(jīng)給大家準備好精簡JS所需的所有工具“前端神器”,這點W3Cfuns為大家做的很不錯,在這個規(guī)則里我們就用到“JS壓縮/混淆/美化工具”

    最初始的精簡方式:就是移除不必要的字符減小js文件大小,改善加載時間。包括所有的注釋、不必要的空白字符。

    高級一點的精簡方式就是:混淆。

    它不但會移除不必要的字符,還會改寫代碼,比如函數(shù)和變量的名字會被改成很短的字符串,這樣使js代碼更簡練更難閱讀。

    但是我一般很少使用混淆,一個現(xiàn)在互聯(lián)網(wǎng)時代,代碼沒有必要整的那么神秘,大可以大家一起share,天下代碼一起抄,只要抄出自己的特色就ok了。

    而且一旦使用混淆,對于js代碼的維護和調(diào)試都很復(fù)雜,因為有時候混淆之后的js代碼完全看不懂。其實實際開發(fā)過程中,從文件大小和代碼可復(fù)用性來說,不僅僅是js代碼需要精簡,css代碼一樣也很需要精簡。

    規(guī)則11:避免重定向

    重定向的英文是Redirect,用于將用戶從一個URL重新跳轉(zhuǎn)到另一個URL。

    最常見的Redirect就是301和302兩種。

    關(guān)于重定向的性能影響這里就不說了,自行查閱相關(guān)資料吧。

    在我們實際開發(fā)中避免重定向最簡單也最容易被忽視的一個問題就是,設(shè)置URL的時候,最后的“/”,有些人有時候會忽略,其實你少了“/”,這時候的URL就被重定向了,所以在給頁面鏈接加URL的時候切記最后的“/”不可丟。

    規(guī)則12:刪除重復(fù)腳本

    重復(fù)的js代碼除了有不必要的HTTP請求之外,還會浪費執(zhí)行js的時間。

    將你使用的js代碼模塊化,可以很好地避免這個問題,至于js模塊化如何實現(xiàn),現(xiàn)在有很多可以使用的開源框架,我用的比較多的是我們公司玉伯的Sea.js。

    規(guī)則13:配置ETag

    Etag(Entity Tag),實體標簽,是Web服務(wù)器和瀏覽器用戶確認緩存組件的有效性的一種機制。寫的很復(fù)雜,對我這種非專業(yè)的前端開發(fā)人員來說,有點過了,關(guān)于這個原則有興趣的自己看吧。

    規(guī)則14:使Ajax可緩存

    針對頁面中主動的Ajax請求返回的數(shù)據(jù)要緩存到本地,當然這個是針對短期內(nèi)不會變化的數(shù)據(jù)。如果不確定數(shù)據(jù)變化周期的話,可以增加一個修改標識的判斷,我正常處理過程中會給一些Ajax請求返回的數(shù)據(jù)增加一個MD5值的判斷,每次請求會判斷當前MD5是否變化,如果變化了取最新的數(shù)據(jù),如果不變化,則不變。

    四、APP常見加載方式

    本文僅供個人學(xué)習,轉(zhuǎn)自IT修真院。

    一、加載

          用戶在客戶端發(fā)出一個指令后,直到客戶端出現(xiàn)反饋結(jié)果時,這段時間內(nèi)計算機完成的一系列執(zhí)行動作,可能包括有客戶端發(fā)出請求,服務(wù)器做出響應(yīng),客戶端拿到數(shù)據(jù)后計算,渲染等。

    二、加載方式

    1、啟動頁加載

          這個主要是APP啟動時的一個頁面,由于APP啟動需要時間,因此可以加入一個啟動頁來自然過渡,而且很多啟動頁是廣告,這樣也可以帶來一些收益,這個頁面一般可以點擊跳過。

    2、界面跳轉(zhuǎn)加載

          這個加載模式又可分為當前頁加載和跳轉(zhuǎn)下個頁面加載。當前頁加載一般是帳號登錄的時候使用的,跳轉(zhuǎn)頁面加載一般用于新聞類APP,點擊新聞標題后跳轉(zhuǎn)至內(nèi)容頁面。

    3、白屏加載

          這個加載方式其實很多地方都用到了,只是平常沒有刻意關(guān)注它,在使用QQ或者微信時,如果別人發(fā)了一個鏈接過來,然后去點擊鏈接,當時周圍的網(wǎng)絡(luò)信號又不太好的話,就會看到這種加載模式的完整過程。一般頂部會有進度條,出結(jié)果就是整個頁面加載出來,加載失敗的話則頁面為空。

    4、分步加載

          顧名思義,就是分步驟的加載網(wǎng)頁,優(yōu)先加載占網(wǎng)絡(luò)資源較小的元素。如先文字和默認圖標后圖片,圖片加載完成前使用占位符顯示;當加載的頁面內(nèi)容有固定的框架時,可以先加載框架,再加載框架內(nèi)的內(nèi)容。這個方式可以減少用戶等待內(nèi)容時間,即使網(wǎng)絡(luò)不太好,也可以先把文字等數(shù)據(jù)量較小的先顯示出來,可以讓用戶提前看到一些內(nèi)容。

          類似的還有懶加載與預(yù)先加載,都可以算作是分步加載。

          懶加載主要是針對前端頁面比較大而設(shè)計出來的一種方式,假如一個網(wǎng)頁很大,又含有很多圖片、視頻內(nèi)容,那么想一次性加載就會等待很久,懶加載就是只有在屏幕顯示范圍內(nèi)的資源,被用戶看到的內(nèi)容才會真正去加載。

           預(yù)加載就是提前加載,比如啟動APP時,當顯示啟動畫面時,就可以預(yù)先把首頁內(nèi)容加載出來,這樣可以減少用戶加載內(nèi)容時的等待時間,還有一個很典型的使用場景就是瀏覽視頻網(wǎng)站或者購物網(wǎng)站,當我們快要滑到頁面底部時,下面圖片已經(jīng)幾乎加載完成了,這就是預(yù)加載的好處,在使用上感覺更加流暢。

    5、智能加載

          這個加載模式我經(jīng)常使用到,假如是在WIFI情況下,使用QQ瀏覽器去看視頻,那么它會自動加載視頻播放,而使用4G的流量去訪問視頻頁面的話,會有一個彈窗來確認是否要播放,以免耗費大量流量造成用戶扣費。智能加載模式就是根據(jù)用戶使用場景來改變加載形式的。

    6、緩存加載

          就是用戶在沒有網(wǎng)絡(luò)的情況下,依靠緩存數(shù)據(jù)來加載內(nèi)容,可以在斷網(wǎng)的情況下顯示數(shù)據(jù),不會因為斷網(wǎng)APP就啥也不顯示了。而且由于有緩存數(shù)據(jù),還可以提高正常模式下的加載速度,缺點就是會占用用戶本地存儲空間,設(shè)計時需要考慮好限制條件。

    7、全頁面加載

          將整個頁面一起加載。這一過程用戶不需要了解,不需要等待,在正常情況下體驗是非常棒的。

    8、占位色塊加載

          在頁面即將出現(xiàn)的位置加載占位色塊,等到數(shù)據(jù)加載完成后將數(shù)據(jù)陸續(xù)填進色塊(給用戶加載很快的感覺,體驗會比全頁面加載流暢)。讓等待時間變得更加有趣,保持用戶感受的連續(xù)性。

    9、進度條加載

          可以清楚的看到當前進度,反饋十分明確。反饋明確,清晰易懂缺點:頁面無內(nèi)容,美觀度較低。

    10、混合加載模式

          為了能讓產(chǎn)品有一個流暢的體驗,很多app會根據(jù)產(chǎn)品的各種不同場景來組合使用不同加載方式。根據(jù)不同場景來設(shè)計,體驗升級缺點:需要對各場景制定對應(yīng)的加載規(guī)范,保證交互一致性。

    11、后臺加載

           用戶在操作后,客戶端立刻反饋操作成功,然后把請求放到后臺與服務(wù)器交互。這一過程用戶不需要了解,不需要等待,在正常情況下體驗是非常棒的。

    12、漸進加載

          在 PC 端用瀏覽器看圖片的時候,經(jīng)常是先看到一張模糊圖,然后再漸漸的變得清晰,這種效果就叫做漸進式加載。

    三、加載遇到的問題

          有些加載過程的時間可能會比較長,甚至用戶不知道此時應(yīng)用是卡死了還是在執(zhí)行命令,這樣就會導(dǎo)致用戶體驗降低,用戶會對應(yīng)用失去耐心。

    原文鏈接:https://blog.csdn.net/jnshu_it/article/details/89282461

    以上就是關(guān)于前端減少頁面加載時間的方法相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進行咨詢,客服也會為您講解更多精彩的知識和內(nèi)容。


    推薦閱讀:

    客戶端前端后端工作的關(guān)系(客戶端前端后端工作的關(guān)系是)

    前端培訓(xùn)的機構(gòu)(前端培訓(xùn)的機構(gòu)推薦)

    千鋒教育前端學(xué)費多少(學(xué)前端去哪個培訓(xùn)機構(gòu))

    杭州華三科技(杭州華三科技招聘信息)

    杭州最大的副食品市場在哪(杭州最大的副食品市場在哪個位置)