使用Blod將數(shù)據(jù)變?yōu)槲募4嬷帘镜?/h3>
const d = {
a: 1,
name: '這是測試文件'
}
const elementA = document.createElement('a'); // 創(chuàng)建一個a標簽用于下載
elementA.download = ‘test.txt’; // 設置要保存文件的名稱
elementA.style.display = 'none'; // 將a標簽隱藏 防止影響頁面,根據(jù)情況來定義
const blob = new Blob([JSON.stringify(d)]); // 使用Blob對象將數(shù)據(jù)轉(zhuǎn)換為類文件對象
// 關(guān)于Blob對象的使用方式可以參考
// https://developer.mozilla.org/zh-CN/docs/Web/API/Blob
elementA.href = URL.createObjectURL(blob); // 將Blob類文件對象轉(zhuǎn)換成包含文件信息的URL,并設置進a標簽
// 將a標簽添加到DOM并觸發(fā)點擊事件就能將數(shù)據(jù)下載下來
document.body.appendChild(elementA);
elementA.click();
document.removeChild(elementA);
關(guān)于內(nèi)存
const d = {
a: 1,
name: '這是測試文件'
}
const elementA = document.createElement('a'); // 創(chuàng)建一個a標簽用于下載
elementA.download = ‘test.txt’; // 設置要保存文件的名稱
elementA.style.display = 'none'; // 將a標簽隱藏 防止影響頁面,根據(jù)情況來定義
const blob = new Blob([JSON.stringify(d)]); // 使用Blob對象將數(shù)據(jù)轉(zhuǎn)換為類文件對象
// 關(guān)于Blob對象的使用方式可以參考
// https://developer.mozilla.org/zh-CN/docs/Web/API/Blob
elementA.href = URL.createObjectURL(blob); // 將Blob類文件對象轉(zhuǎn)換成包含文件信息的URL,并設置進a標簽
// 將a標簽添加到DOM并觸發(fā)點擊事件就能將數(shù)據(jù)下載下來
document.body.appendChild(elementA);
elementA.click();
document.removeChild(elementA);
在每次調(diào)用 createObjectURL() 方法時,都會創(chuàng)建一個新的 URL 對象,即使你已經(jīng)用相同的對象作為參數(shù)創(chuàng)建過。當不再需要這些 URL 對象時,每個對象必須通過調(diào)用 URL.revokeObjectURL() 方法來釋放。
瀏覽器在 document 卸載的時候,會自動釋放它們,但是為了獲得最佳性能和內(nèi)存使用狀況,你應該在安全的時機主動釋放掉它們。