ArrayBuffer對象表示原始的二進制數據緩衝區,即在內存中分配指定大小的二進制緩衝區(容器),用於存儲各類類型化數組的數據,是最基礎的原始數據容器,沒法直接讀取或寫入, 須要經過具體視圖來讀取或寫入,即TypedArray對象或DataView對象對內存大小進行讀取或寫入;css
Blob(binary large object),二進制類文件大對象,是一個能夠存儲二進制文件的「容器」,HTML5中的Blob對象除了存放二進制數據外還能夠設置這個數據的MIME類型。File接口基於Blob,繼承了 blob 的功能並將其擴展使其支持用戶系統上的文件。數組
MIME (Multipurpose Internet Mail Extensions) 是描述消息內容類型的因特網標準。服務器
MIME 消息能包含文本、圖像、音頻、視頻以及其餘應用程序專用的數據。網絡
咱們知道,咱們所看到的網頁上的每個圖片,都是須要消耗一個 http 請求下載而來的(全部纔有了 csssprites 技術的應運而生,可是 csssprites 有自身的侷限性,下文會提到)。
沒錯,無論如何,圖片的下載始終都要向服務器發出請求,要是圖片的下載不用向服務器發出請求,而能夠隨着 HTML 的下載同時下載到本地那就太好了,而 base64 正好能解決這個問題。
雖然能直接顯示圖片,然而,與之同時付出的代價則是 CSS 文件體積的增大。編碼
<img src="data:image/gif;base64,R0lGODlhHAAmAKIHAKqqqsvLy0hISObm5vf394uLiwAAAP///yH5B…EoqQqJKAIBaQOVKHAXr3t7txgBjboSvB8EpLoFZywOAo3LFE5lYs/QW9LT1TRk1V7S2xYJADs=">
Base64是網絡上最多見的用於傳輸8Bit字節碼的編碼方式之一,Base64就是一種基於64個可打印字符來表示二進制數據的方法。
轉碼過程例子: 3*8=4*6 內存1個字節佔8位 轉前: s 1 3 先轉成ascii:對應 115 49 51 2進制: 01110011 00110001 00110011 6個一組(4組) 011100110011000100110011 而後纔有後面的 011100 110011 000100 110011 而後計算機一個字節佔8位,不夠就自動補兩個高位0了 因此有了高位補0 科學計算器輸入 00011100 00110011 00000100 00110011 獲得 28 51 4 51 查對下照表 c z E z