Blob 是一種二進制數據對象,它可以存儲任意數據類型的數據。在 JavaScript 中,可以使用 Blob 對象來讀取二進制數據,例如從服務器接收音頻、圖像或其他二進制文件。
在大多數情況下,Blob 對象被用來存儲二進制文件數據。但是,Blob 對象也可以存儲其他格式的數據,比如 JSON。使用 Blob 對象獲取 JSON 數據的一個很好的例子是在瀏覽器中下載生成的 JSON 數據并存儲到本地。
const data = { "name": "John", "surname": "Doe", "phone": "555-555-5555", "email": "johndoe@example.com" }; const jsonData = JSON.stringify(data); const blob = new Blob([jsonData], {type: "application/json"}); const url = URL.createObjectURL(blob); const link = document.createElement('a'); link.download = 'data.json'; link.href = url; link.click();
在這個例子中,我們首先為一個 JavaScript 對象創建了JSON字符串。然后,我們使用 Blob 對象的構造函數來創建一個 Blob 對象,其中我們傳遞了 JSON 字符串作為參數,同時指定了 MIME 類型為 "application/json"。接下來,使用 URL.createObjectURL 方法來獲取 Blob 對象的 URL,并創建一個新的<a>
元素。為了使下載更方便,我們將<a>
元素上的 'download' 屬性賦值為 'data.json', 指定下載的文件名為 data.json。最后,我們將<a>
元素的'href' 屬性設置為 URL,這樣就可以讓瀏覽器開始下載文件了。
在這個例子中,我們使用了幾個 HTML5 相關的 API,如Blob 和URL。Blob 對象提供了一種方式來操作和獲取二進制數據,同時,URL 可以生成 Blob 對象的 URL。這兩個 API 遵循同樣的模式,其中一個對象被傳遞給另一個作為參數。