日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

前后端传图片用base64好吗_Base64是什么?前端用Base64加载图片到底好不好?

發布時間:2024/3/13 HTML 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 前后端传图片用base64好吗_Base64是什么?前端用Base64加载图片到底好不好? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

相信無論是前端還是后端開發工程師,對于Base64都不會感到陌生,在開發中我們經常會將一些小圖片以Base64的形式存儲和加載。然而知其然也要知其所以然,Base64究竟是什么,我們為什么要使用Base64,以及Base64的優缺點又是什么呢?今天我們就來聊一聊。

什么是Base64

首先Base64是一種編碼格式,普遍應用于需要在網絡中存儲和傳輸的二進制數據。為什么叫Base64呢,主要是因為這種編碼格式每個字節的前兩位只能是0,剩下只有6位可以表示,所以對于Base64來說,一個字節只能表示64種情況。Base64的名字由此而來。

為什么要存在Base64

但我們不難發現,這樣的話這種編碼格式并不能充分利用存儲資源,是比較低效的,那為什么還要用Base64這種編碼呢?為什么不直接傳輸二進制而要轉成Base64格式再去傳輸呢?

原因是因為base64最早是用在郵件傳輸協議中的,當時郵件傳輸協議只支持ascii字符傳遞,ascii碼可以用來表示所有的英文字符和數字還有一些符號,但其中還存在很多不可見字符或者叫控制字符,不可見字符在傳輸過程中可能會產生一些錯誤,如果郵件中只傳輸英文數字等,那么ascii是可以直接支持不會有問題,但是如果你要在文件中傳輸一些二進制文件,圖片,視頻等資源的時候,不可避免的轉成ascii的時候會出現非英文數字的情況,也就是上面所說的不可見字符,這時就有可能會導致傳輸過程中出現問題。

Base64就是用來解決這個問題的,人們想到把二進制劃分為多個3個字節的塊,把每3個字節(24位)轉換成4個6位,每個六位根據查表對應一個ASCII符號。如下圖所示:

上圖是Base64的編碼字典

如上圖所示,比如我們有一個3個字節的數據,轉成ascii碼以后就是第一行所示,但我們查詢ascii碼會發現第三個字節是個不可見字符,所以如果在曾經的郵件傳輸協議中這么傳輸可能會在過程中產生一些錯誤,于是我們需要轉成base64再去傳輸,根據Base64的轉化規則曾經的三個字節就變成了4組6位的值,然后我們需要在每一組前面補充兩個0補齊字節長度。于是根據Base64編碼之后我們打印出的結果就是S3qb這個字符串。

另外這個例子比較特殊,我們正好是個3字節數據,如果1個字節或者2個字節時,我們就會發現位數不能正好被6整除,不能整除就會是下面這個示例展示的樣子

如何編碼和解碼Base64

在 JavaScript 中,有兩個函數被分別用來處理解碼和編碼 base64 字符串。btoa() — 字符串轉 Base64編碼

atob() — 通過Base64規則解碼成ascii字符串

使用Base64存儲和加載圖片好不好?

相信大家對于Base64的編解碼和原理已經有了深入了解,最后我們簡單聊聊在前端頁面中使用Base64加載圖片到底好不好。所有事情都有兩面性,沒有絕對的好不好,只有在某些特定場景下合不合適。我們來看看Base64加載圖片的優劣點:

資源大小:根據我們上面提到的原理,我們很容易發現Base64會比正常資源要大三分之一,Gzip壓縮之后差距會縮小。

緩存方式:圖片資源很好緩存,但如果是base64的話,如果是在cssjs中引入可以跟文件一起進行緩存,如果在html中直接引用則必須緩存html文件,所以緩存方便程度上肯定是圖片資源文件更方便緩存。

加載方式:html/css中引入base64會導致文件體積變大,從而導致首屏展示的比較慢,而用過圖片資源方式異步引入會首屏會展示的比較快。但對于需要加載很多圖片的情況下,尤其是腳在很多小圖片小icon的情況下,如果不使用雪碧圖的方式就會造成請求量很大,在http1.1/1.0協議下,在不開啟keep-alive的情況下,會導致效率低下重復創建銷毀連接通道,并且瀏覽器存在請求線程限制,并且存在網絡io延遲,這種情況下base64效率更高,但如果你的應用使用http2/3的協議,base64的優勢就不大了。

結語

所以綜合來看Base64加載圖片的方式多數情況下并不是最優選擇,只有在圖片比較小,比較獨立并不適合做成雪碧圖的情況下再去使用比較好。
————————————————
版權聲明:本文為CSDN博主「weixin_39765209」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/weixin_39765209/article/details/112835049

總結

以上是生活随笔為你收集整理的前后端传图片用base64好吗_Base64是什么?前端用Base64加载图片到底好不好?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产又爽又黄的视频 | 日韩福利在线观看 | 老司机一区 | 黄色一级片免费 | 九九热re| 成人午夜免费在线 | 欧美韩日精品 | 一久久 | 激情伦成人综合小说 | 黑人精品无码一区二区三区AV | 日日色综合 | 亚洲国产精品网站 | 麻豆videos | 久草国产在线视频 | 国产欧美日韩精品在线观看 | 久久99成人 | 精品无码久久久久久久久成人 | 亚洲综合中文字幕在线 | 精品熟女一区 | julia中文字幕在线 | 日韩一卡| 久久精品首页 | 成年人免费小视频 | 日日操日日操 | 婷婷激情四射 | 欧美日韩精品一区二区 | 欧美日韩精品区别 | 日本阿v视频在线观看 | 欧美人妻精品一区二区 | 日韩在线视频在线观看 | 国产外围在线 | 美女被男人桶出白浆喷水 | 久久97久久97精品免视看 | 欧洲精品久久久久毛片完整版 | 91官网在线观看 | 成人av影院在线观看 | 国产激情久久久久 | 伊人成人22 | 日韩免费一级 | 色综合久久综合 | 国产精品久久久久久人妻精品动漫 | 国产视频一区在线播放 | 色偷偷成人| 日狠狠 | 最新日韩在线 | 亚洲av第一成肉网 | 日本熟女一区二区 | 什么网站可以看毛片 | 亚洲精品入口 | 色哟哟网站在线观看 | 亚洲第一页夜 | 中文字幕五区 | 香蕉尹人 | 成人影片在线免费观看 | 男人插入女人阴道视频 | hd性videos意大利精品 | 九九热在线精品视频 | 色网在线视频 | 黄网站免费视频 | 九九九国产 | 色5月婷婷| 香蕉视频免费在线观看 | 偷拍一区二区三区 | 日韩欧美在线视频免费观看 | 精品人妻一区二区三区久久夜夜嗨 | 一区二区三区四区五区av | 国产91福利 | 国产欧洲亚洲 | 91免费黄视频 | 在线 日本 制服 中文 欧美 | 久久久999久久久 | 欧美激情网站 | 久久91精品国产 | 素人fc2av清纯18岁 | 中文字幕99 | 麻豆911| 欧美性猛交久久久乱大交小说 | 狠狠躁日日躁夜夜躁 | 黄频在线免费观看 | 天天摸夜夜添 | 一级特黄av | 91免费视频网站 | 懂色av蜜臀av粉嫩av分 | 天堂中文字幕av | 精品少妇一区二区 | 亚洲成av人影院 | 69久久夜色精品国产69 | av视 | 亚洲视频一| 日韩插 | 精品中文字幕视频 | 欧美一区二区三区激情视频 | 尤物网站在线观看 | 欧美日韩精品三区 | 亚洲av色区一区二区三区 | 日韩视频在线观看 | 91蜜桃婷婷狠狠久久综合9色 | 久久免费网 | 成人国产a|