您好,登錄后才能下訂單哦!
這篇文章主要介紹“JavaScript的URL.createObjectURL()怎么使用”,在日常操作中,相信很多人在JavaScript的URL.createObjectURL()怎么使用問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”JavaScript的URL.createObjectURL()怎么使用”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
URL.createObjectURL() 靜態方法會創建一個 DOMString,其中包含一個表示參數中給出的對象的URL。這個 URL 的生命周期和創建它的窗口中的 document 綁定。這個新的URL 對象表示指定的 File 對象或 Blob 對象。
URL.createObjectURL(blob)和FileReader.readAsDataURL(file)很相似:
主要區別
通過FileReader.readAsDataURL(file)可以獲取一段data:base64的字符串
通過URL.createObjectURL(blob)可以獲取當前文件的一個內存URL
執行時機:
createObjectURL是同步執行(立即的)
FileReader.readAsDataURL是異步執行(過一段時間)
內存使用:
createObjectURL返回一段帶hash的url,并且一直存儲在內存中,直到document觸發了unload事件(例如:document close)或者執行revokeObjectURL來釋放。
FileReader.readAsDataURL則返回包含很多字符的base64,并會比blob url消耗更多內存,但是在不用的時候會自動從內存中清除(通過垃圾回收機制)
兼容性方面兩個屬性都兼容ie10以上的瀏覽器。
優劣對比:
使用createObjectURL可以節省性能并更快速,只不過需要在不使用的情況下手動釋放內存
如果不太在意設備性能問題,并想獲取圖片的base64,則推薦使用FileReader.readAsDataURL
使用方式:
objectURL = URL.createObjectURL(blob);
示例
html 文件
<input type="file" id="btn" accept="image/*" value="點擊上傳" /> <img id="img"/>
js 文件
btn.addEventListener('change',function(){ let file = this.files[0]; // 進一步防止文件類型錯誤 if(!/image\/\w+/.test(file.type)){ alert("看清楚,這個需要圖片!"); return false; } img.src = URL.createObjectURL(file) })
到此,關于“JavaScript的URL.createObjectURL()怎么使用”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。