預告 BlobBuilder 的粉絲,在此提醒大家,我們下次見!
BlobBuilder
是便利的 API,可用來在 JavaScript 中建立 Blob (或檔案)。距離 Chrome 8、FF 6 和 IE 10 開始支援,但從未在 Safari 中出貨,但可能永遠都不會出貨。File API 近期的規格變更包含 Blob
的新建構函式,基本上會導致 BlobBuilder
不相關。事實上,由於 Safari 夜間功能已經停用,Chrome 很快就會在主控台中發出警告。
以下為使用已淘汰的 BlobBuilder
和新的 Blob
建構函式的程式碼,進行比較。這段程式碼會建立樣式表,並附加至 DOM。
BlobBuilder()
:
window.BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder ||
window.MozBlobBuilder || window.MSBlobBuilder;
window.URL = window.URL || window.webkitURL;
var bb = new BlobBuilder();
bb.append('body { color: red; }');
var blob = bb.getBlob('text/css');
var link = document.createElement('link');
link.rel = 'stylesheet';
link.href = window.URL.createObjectURL(blob);
document.body.appendChild(link);
Blob()
:
window.URL = window.URL || window.webkitURL;
var blob = new Blob(['body { color: red; }'], {type: 'text/css'});
var link = document.createElement('link');
link.rel = 'stylesheet';
link.href = window.URL.createObjectURL(blob);
document.body.appendChild(link);
太棒了!現在,我們不必附加至 BlobBuilder
,只要從資料部分陣列建立 Blob
即可。資料部分可以是不同類型的類型 (DOMString
、ArrayBuffer
、Blob
),也可以是任何順序。例如:
var blob = new Blob(['1234567890', blob, arrayBuffer]);
另請注意,第二個物件參數為選用參數。如要進一步瞭解相關異動,請參閱 Blob 的 MDN 文件。