blob和arrayBuffer

1,定義

Blob,英文Binary large Object,在mdn上的解釋是Blob對象表示不可變的類似文件對象的原始數據 。Blob() 構造函數返回一個新的 Blob 對象。

var aBlob = new Blob( array, options );
  • array 是一個由ArrayBuffer, ArrayBufferView, Blob, DOMString 等對象構成的 Array ,或者其他類似對象的混合體,它將會被放進 Blob。DOMStrings會被編碼爲UTF-8。

  • options 它可能會指定如下兩個屬性:
    type,默認值爲 “”,它代表了將會被放入到blob中的數組內容的MIME類型。
    endings,默認值爲"transparent",用於指定包含行結束符\n的字符串如何被寫入。

詳細解釋參考:https://developer.mozilla.org/zh-CN/docs/Web/API/Blob/Blob

ArrayBuffer,我的理解是ArrayBuffer代表內存之中的一段二進制數據 ,一旦生成不能再改。

2,常用場景,前端創建文件並下載

例子如下

	var debug = {hello: "world"};
	 //使用blob創建一個類文件對象
    var blob = new Blob([JSON.stringify(debug, null, 2)], {type : 'application/json'}); 
    //以下是下載過程
    var body = document.querySelector('body');
	var link = document.createElement('a');
	link.download = 'test.json';
	link.href = window.URL.createObjectURL(blob);
	body.appendChild(link); 
	link.click();
	body.removeChild(link);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章