摘要:歡迎訪問我的個(gè)人博客前言最近在做一個(gè)項(xiàng)目,有個(gè)需求就是,前端在內(nèi)存中維護(hù)了一個(gè)很復(fù)雜的對象,當(dāng)點(diǎn)擊下載按鈕時(shí),需要把這個(gè)對象保存到文本中并下載到本地。
歡迎訪問我的個(gè)人博客:http://www.xiaolongwu.cn
前言最近在做一個(gè)項(xiàng)目,有個(gè)需求就是,前端在內(nèi)存中維護(hù)了一個(gè)很復(fù)雜的json對象,當(dāng)點(diǎn)擊下載按鈕時(shí),需要把這個(gè)json對象保存到文本中并下載到本地。
總結(jié)了兩種實(shí)現(xiàn)方式假如在我們項(xiàng)目中有個(gè)json對象如下:
var jsonObj = { name: "Leon WuV", age: 23 }方式一
當(dāng)我們點(diǎn)擊下載按鈕時(shí),調(diào)用如下方法
function downFlie() { // 創(chuàng)建a標(biāo)簽 var elementA = document.createElement("a"); //文件的名稱為時(shí)間戳加文件名后綴 elementA.download = +new Date() + ".tpl"; elementA.style.display = "none"; //生成一個(gè)blob二進(jìn)制數(shù)據(jù),內(nèi)容為json數(shù)據(jù) var blob = new Blob([JSON.stringify(jsonObj)]); //生成一個(gè)指向blob的URL地址,并賦值給a標(biāo)簽的href屬性 elementA.href = URL.createObjectURL(blob); document.body.appendChild(elementA); elementA.click(); document.body.removeChild(elementA); }
可以看到文件已經(jīng)下載到本地了
.jpg)
我們在打開文件看下內(nèi)容
.jpg)
也沒有問題,是剛才我們維護(hù)在內(nèi)存中的哪個(gè)json對象
方式二function downFile() { var elementA = document.createElement("a"); elementA.setAttribute("href", "data:text/plain;charset=utf-8," + JSON.stringify(json1)); elementA.setAttribute("download", +new Date() + ".tpl"); elementA.style.display = "none"; document.body.appendChild(elementA); elementA.click(); document.body.removeChild(elementA); }
當(dāng)然第二種方式和第一種方式的結(jié)果是完全一樣的,感覺第二種方式更為簡單。
github資源地址:js基礎(chǔ)--將內(nèi)存中的數(shù)據(jù)保存為文件下載到本地
我的CSDN博客地址:https://blog.csdn.net/wxl1555
如果您對我的博客內(nèi)容有疑惑或質(zhì)疑的地方,請?jiān)谙路皆u論區(qū)留言,或郵件給我,共同學(xué)習(xí)進(jìn)步。
郵箱:wuxiaolong802@163.com
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/101053.html
摘要:前綴規(guī)范每個(gè)局部變量都需要有一個(gè)類型前綴,按照類型可以分為表示字符串。例如,表示以上未涉及到的其他對象,例如,表示全局變量,例如,是一種區(qū)分大小寫的語言。布爾值與字符串相加將布爾值強(qiáng)制轉(zhuǎn)換為字符串。 基本概念 javascript是一門解釋型的語言,瀏覽器充當(dāng)解釋器。js執(zhí)行時(shí),在同一個(gè)作用域內(nèi)是先解釋再執(zhí)行。解釋的時(shí)候會編譯function和var這兩個(gè)關(guān)鍵詞定義的變量,編譯完成后從...
摘要:用和包裹的內(nèi)容,稱為字符串。關(guān)系運(yùn)算符用于進(jìn)行比較的運(yùn)算符。強(qiáng)制依賴于,非強(qiáng)制依賴于。使用場合全局環(huán)境構(gòu)造函數(shù)對象的方法閉包閉包是指有權(quán)訪問另一個(gè)函數(shù)作用域中的變量的函數(shù)。所有全局對象函數(shù)以及變量均自動成為對象的成員。 1 什么是JavaScript JavaScript一種直譯式腳本語言,一種基于對象和事件驅(qū)動并具有安全性的客戶端腳本語言;也是一種廣泛應(yīng)用客戶端web開發(fā)的腳本語言。...
摘要:相當(dāng)于繞過了瀏覽器端,自然就不存在跨域問題。三者的區(qū)別與服務(wù)器的交互數(shù)據(jù)始終在同源的請求中攜帶即使不需要,即在瀏覽器和服務(wù)器間來回傳遞。而和不會自動把數(shù)據(jù)發(fā)給服務(wù)器,僅在本地保存。和雖然也有存儲大小的限制,但比大得多,可以達(dá)到或更大。 本文提供最簡便的解答方式,方便快速記憶,復(fù)盤,詳細(xì)答案可自己再搜一下。 js基礎(chǔ)知識 1. javascript typeof返會的數(shù)據(jù)類型有哪些 ob...
摘要:和體現(xiàn)了對不同異常情況的分類。是程序正常運(yùn)行中,可以預(yù)料的意外情況,可能并且應(yīng)該被捕獲,進(jìn)行相應(yīng)的處理。是指在正常情況下,不大可能出現(xiàn)的情況,絕大部分都會使程序處于非正常不可恢復(fù)的狀態(tài)。常見的非對稱加密包括等。 面試,無非都是問上面這些問題(挺多的 - -!),聘請中高級的安卓開發(fā)會往深的去問,并且會問一延伸二。以下我先提出幾點(diǎn)重點(diǎn),是面試官基本必問的問題,請一定要去了解! 基礎(chǔ)知識...
閱讀 3414·2021-11-24 09:38
閱讀 3193·2021-11-22 09:34
閱讀 2106·2021-09-22 16:03
閱讀 2364·2019-08-29 18:37
閱讀 377·2019-08-29 16:15
閱讀 1767·2019-08-26 13:56
閱讀 862·2019-08-26 12:21
閱讀 2204·2019-08-26 12:15