摘要:和類似,但是瀏覽器關(guān)閉則會(huì)全部刪除,和相同,實(shí)際項(xiàng)目中使用較少。啟用壓縮在服務(wù)器端對(duì)文件進(jìn)行壓縮,在瀏覽器端對(duì)文件解壓縮,可有效減少通信傳輸?shù)臄?shù)據(jù)量。
1、 減少http請(qǐng)求,合理設(shè)置 HTTP緩存
http協(xié)議是無狀態(tài)的應(yīng)用層協(xié)議,意味著每次http請(qǐng)求都需要建立通信鏈路、進(jìn)行數(shù)據(jù)傳輸,而在服務(wù)器端,每個(gè)http都需要啟動(dòng)獨(dú)立的線程去處理。這些通信和服務(wù)的開銷都很昂貴,減少http請(qǐng)求的數(shù)目可有效提高訪問性能。
減少http的主要手段是合并CSS、合并javascript、合并圖片。將瀏覽器一次訪問需要的javascript和CSS合并成一個(gè)文件,這樣瀏覽器就只需要一次請(qǐng)求。圖片也可以合并,多張圖片合并成一張,如果每張圖片都有不同的超鏈接,可通過CSS偏移響應(yīng)鼠標(biāo)點(diǎn)擊操作,構(gòu)造不同的URL。
① 簡(jiǎn)單的圖片效果可以使用html+css、canvas或者svg來替換。
② 合并CSS、合并javascript、合并圖片(webPack等包管理工具)
③ 圖片格式,大小選擇,圖片優(yōu)化
2、 應(yīng)用瀏覽器緩存:
① http緩存(文件級(jí)緩存)
② cookie: 儲(chǔ)存在用戶本地終端上的數(shù)據(jù)(通常經(jīng)過加密)有長(zhǎng)度和個(gè)數(shù)限制,瀏覽器端也可以通過document.cookie來獲取cookie,并通過js瀏覽器端也可以方便地讀取/設(shè)置cookie的值。
③ localStorage: localStorage是html5的一種新的本地緩存方案,目前用的比較多,一般用來存儲(chǔ)ajax返回的數(shù)據(jù),加快下次頁面打開時(shí)的渲染速度。localstorage大小有限制,不適合存放過多的數(shù)據(jù),如果數(shù)據(jù)存放超過最大限制會(huì)報(bào)錯(cuò),并移除最先保存的數(shù)據(jù)。localStorage存數(shù)的數(shù)據(jù)是不能跨瀏覽器共用的,一個(gè)瀏覽器只能讀取各自瀏覽器的數(shù)據(jù)
localStorage核心API:
localStorage.setItem(key, value) //設(shè)置記錄
localStorage.getItem(key) //獲取記錄
localStorage.removeItem(key) //刪除該域名下單條記錄
localStorage.clear() //刪除該域名下所有記錄
注:localStorage對(duì)象的屬性值只能是字符串,json對(duì)象可以根據(jù)當(dāng)然也可以借助JSON類,將對(duì)象轉(zhuǎn)換成字符串保存,然后在取出來的時(shí)候?qū)son字符串轉(zhuǎn)換成真正可用的json對(duì)象格式。
④ sessionstorage:
sessionStorage和localstorage類似,但是瀏覽器關(guān)閉則會(huì)全部刪除,api和localstorage相同,實(shí)際項(xiàng)目中使用較少。
⑤ application cache
application cahce是將大部分圖片資源、js、css等靜態(tài)資源放在manifest文件配置中。當(dāng)頁面打開時(shí)通過manifest文件來讀取本地文件或是請(qǐng)求服務(wù)器文件。
3、啟用壓縮
在服務(wù)器端對(duì)文件進(jìn)行壓縮,在瀏覽器端對(duì)文件解壓縮,可有效減少通信傳輸?shù)臄?shù)據(jù)量。如果可以的話,盡可能的將外部的腳本、樣式進(jìn)行合并,多個(gè)合為一個(gè)。文本文件的壓縮效率可達(dá)到80%以上,因此HTML、CSS、javascript文件啟用GZip壓縮可達(dá)到較好的效果。但是壓縮對(duì)服務(wù)器和瀏覽器產(chǎn)生一定的壓力,在通信帶寬良好,而服務(wù)器資源不足的情況下要權(quán)衡考慮。
采用網(wǎng)上在線壓縮工具(jQuery MiniUI)自己壓縮或者通過webpack、gulp等打包工具進(jìn)行壓縮處理。
4、CSS Sprites
5、LazyLoad Images:對(duì)于圖片而言,在頁面剛加載的時(shí)候可以只加載第一屏,當(dāng)用戶繼續(xù)往后滾屏的時(shí)候才加載后續(xù)的圖片。
①jqueryLazyload方式
②echo.js方式
6、CSS放在頁面最上部,javascript放在頁面最下面
后續(xù)文章還會(huì)具體講各種優(yōu)化方法,希望大家一起學(xué)習(xí)~
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/51098.html
摘要:端優(yōu)談?wù)勱P(guān)于前端的緩存的問題我們都知道對(duì)頁面進(jìn)行緩存能夠有利于減少請(qǐng)求發(fā)送,從而達(dá)到對(duì)頁面的優(yōu)化。而作為一名有追求的前端,勢(shì)必要力所能及地優(yōu)化我們前端頁面的性能。這種方式主要解決了淺談前端中的過早優(yōu)化問題過早優(yōu)化是萬惡之源。 優(yōu)化向:?jiǎn)雾搼?yīng)用多路由預(yù)渲染指南 Ajax 技術(shù)的出現(xiàn),讓我們的 Web 應(yīng)用能夠在不刷新的狀態(tài)下顯示不同頁面的內(nèi)容,這就是單頁應(yīng)用。在一個(gè)單頁應(yīng)用中,往往只有一...
摘要:淺談網(wǎng)站性能之前端性能優(yōu)化性能優(yōu)化的目的無非是減少用戶流量消耗,提升用戶首屏體驗(yàn),提升用戶訪問速度,讓用戶專注內(nèi)容本身。前端性能優(yōu)化減少請(qǐng)求數(shù)量基本原理在瀏覽器與服務(wù)器進(jìn)行通信時(shí),主要是通過進(jìn)行通信。 最近項(xiàng)目慢慢走上正軌,需求趨于平穩(wěn),這才想起需要對(duì)整站進(jìn)行性能優(yōu)化。經(jīng)過一段時(shí)間的學(xué)習(xí),結(jié)合現(xiàn)在項(xiàng)目的實(shí)際性能情況,發(fā)現(xiàn)確實(shí)有許多地方可以進(jìn)行優(yōu)化。于是就開始了我的前端性能優(yōu)化之旅。以下...
摘要:淺談網(wǎng)站性能之前端性能優(yōu)化性能優(yōu)化的目的無非是減少用戶流量消耗,提升用戶首屏體驗(yàn),提升用戶訪問速度,讓用戶專注內(nèi)容本身。前端性能優(yōu)化減少請(qǐng)求數(shù)量基本原理在瀏覽器與服務(wù)器進(jìn)行通信時(shí),主要是通過進(jìn)行通信。 最近項(xiàng)目慢慢走上正軌,需求趨于平穩(wěn),這才想起需要對(duì)整站進(jìn)行性能優(yōu)化。經(jīng)過一段時(shí)間的學(xué)習(xí),結(jié)合現(xiàn)在項(xiàng)目的實(shí)際性能情況,發(fā)現(xiàn)確實(shí)有許多地方可以進(jìn)行優(yōu)化。于是就開始了我的前端性能優(yōu)化之旅。以下...
摘要:本文是圖說系列文章的第五篇。這樣的話,使用的開發(fā)者也不需要做任何適配,但是它們卻能獲得更高性能。該圖并不是用來準(zhǔn)確的衡量其性能的。運(yùn)行編寫出高性能的代碼是可能的。這種清理工作由引擎自動(dòng)進(jìn)行,稱為垃圾回收。 本文是圖說 WebAssembly 系列文章的第五篇。如果您還未閱讀之前的文章,建議您從第一篇入手。 在上一篇文章中,我們說到了使用 WebAssembly 和 JavaScript...
摘要:如何權(quán)衡優(yōu)化優(yōu)化原則優(yōu)化的目的是希望降低程序的整體開銷。雖然在程序中有許多因素可以優(yōu)化,但通常人們會(huì)認(rèn)為這個(gè)開銷就是程序的執(zhí)行時(shí)間,其實(shí)我們更應(yīng)該將重點(diǎn)放在對(duì)程序整體開銷最大的那個(gè)部分。 性能是一個(gè)網(wǎng)站成功的關(guān)鍵,然而,如今日益豐富的內(nèi)容和大量使用Ajax的Web應(yīng)用程序已迫使瀏覽器達(dá)到其處理能力的極限,這就迫使我們需要一些技術(shù)來優(yōu)化我們網(wǎng)站的性能!我相信已經(jīng)有不少人看過了Yah...
摘要:背景在開發(fā)好頁面后,如何讓頁面更快更好的運(yùn)行,是區(qū)分一個(gè)程序猿技術(shù)水平和視野的一個(gè)重要指標(biāo)。在對(duì)這些環(huán)節(jié)進(jìn)行優(yōu)化之前,我們需要知道如何監(jiān)控這些環(huán)節(jié)花費(fèi)了多少時(shí)間。為了優(yōu)化鏈接的環(huán)節(jié),前端這里還需要對(duì)資源使用,雪碧圖,代碼合并等手段。 背景 在開發(fā)好頁面后,如何讓頁面更快更好的運(yùn)行,是區(qū)分一個(gè)程序猿技術(shù)水平和視野的一個(gè)重要指標(biāo)。所以面試時(shí),面試官總會(huì)問你一個(gè)問題,如何進(jìn)行性能優(yōu)化呢? 如...
閱讀 1408·2023-04-26 01:58
閱讀 2282·2021-11-04 16:04
閱讀 1753·2021-08-31 09:42
閱讀 1765·2021-07-25 21:37
閱讀 1066·2019-08-30 15:54
閱讀 2074·2019-08-30 15:53
閱讀 3047·2019-08-29 13:28
閱讀 2687·2019-08-29 10:56