欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

關(guān)于JavaScript的URL.createObjectURL()的使用方法

 更新時(shí)間:2023年04月25日 08:33:03   作者:小太陽(yáng)...  
這篇文章主要介紹了關(guān)于URL.createObjectURL()的使用方法,使用createObjectURL可以節(jié)省性能并更快速,只不過(guò)需要在不使用的情況下手動(dòng)釋放內(nèi)存,還不清楚的朋友一起來(lái)看看吧

URL.createObjectURL() 靜態(tài)方法會(huì)創(chuàng)建一個(gè) DOMString,其中包含一個(gè)表示參數(shù)中給出的對(duì)象的URL。這個(gè) URL 的生命周期和創(chuàng)建它的窗口中的 document 綁定。這個(gè)新的URL 對(duì)象表示指定的 File 對(duì)象或 Blob 對(duì)象。

URL.createObjectURL(blob)和FileReader.readAsDataURL(file)很相似,下面是個(gè)人的一些理解,如有不正確的地方,歡迎指出:

主要區(qū)別

  • 通過(guò)FileReader.readAsDataURL(file)可以獲取一段data:base64的字符串
  • 通過(guò)URL.createObjectURL(blob)可以獲取當(dāng)前文件的一個(gè)內(nèi)存URL

執(zhí)行時(shí)機(jī):

  • createObjectURL是同步執(zhí)行(立即的)
  • FileReader.readAsDataURL是異步執(zhí)行(過(guò)一段時(shí)間)

內(nèi)存使用:

  • createObjectURL返回一段帶hash的url,并且一直存儲(chǔ)在內(nèi)存中,直到document觸發(fā)了unload事件(例如:document close)或者執(zhí)行revokeObjectURL來(lái)釋放。
  • FileReader.readAsDataURL則返回包含很多字符的base64,并會(huì)比blob url消耗更多內(nèi)存,但是在不用的時(shí)候會(huì)自動(dòng)從內(nèi)存中清除(通過(guò)垃圾回收機(jī)制)

兼容性方面兩個(gè)屬性都兼容ie10以上的瀏覽器。

優(yōu)劣對(duì)比:

  • 使用createObjectURL可以節(jié)省性能并更快速,只不過(guò)需要在不使用的情況下手動(dòng)釋放內(nèi)存
  • 如果不太在意設(shè)備性能問(wèn)題,并想獲取圖片的base64,則推薦使用FileReader.readAsDataURL

使用方式:

objectURL = URL.createObjectURL(blob);

示例

html 文件

<input type="file" id="btn" accept="image/*" value="點(diǎn)擊上傳" />
<img id="img"/>

js 文件

btn.addEventListener('change',function(){
	let file = this.files[0];
	// 進(jìn)一步防止文件類(lèi)型錯(cuò)誤
	if(!/image\/\w+/.test(file.type)){  
        alert("看清楚,這個(gè)需要圖片!");  
        return false;  
    }  
	img.src = URL.createObjectURL(file)
})

到此這篇關(guān)于關(guān)于URL.createObjectURL()的使用方法的文章就介紹到這了,更多相關(guān)URL.createObjectURL()用法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • JS中創(chuàng)建函數(shù)的三種方式及區(qū)別

    JS中創(chuàng)建函數(shù)的三種方式及區(qū)別

    這篇文章主要介紹了js函數(shù)的多種定義方法與其區(qū)別,非常的詳細(xì),有需要的小伙伴可以參考下
    2016-03-03
  • javascript 函數(shù)介紹

    javascript 函數(shù)介紹

    在JavaScript中,定義函數(shù)最常用的方法就是調(diào)用function語(yǔ)句。該語(yǔ)句是由function關(guān)鍵字構(gòu)成的,也是很重要的函數(shù)復(fù)用。
    2009-09-09
  • 詳解js動(dòng)態(tài)獲取瀏覽器或頁(yè)面等容器的寬高

    詳解js動(dòng)態(tài)獲取瀏覽器或頁(yè)面等容器的寬高

    這篇文章主要介紹了js動(dòng)態(tài)獲取瀏覽器或頁(yè)面等容器的寬高,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • IE下寫(xiě)xml文件的兩種方式(fso/saveAs)

    IE下寫(xiě)xml文件的兩種方式(fso/saveAs)

    Firefox等瀏覽器不支持寫(xiě)本地文件,這也是為了安全起見(jiàn),下面與大家分享下IE下寫(xiě)xml文件的幾種方式,感興趣的朋友可以了解下,希望對(duì)大家有所幫助
    2013-08-08
  • 各種常用的JS函數(shù)整理

    各種常用的JS函數(shù)整理

    JS函數(shù)經(jīng)常使用的比較多比如獲取頁(yè)面地址參數(shù)、地址跳轉(zhuǎn)、判斷是否數(shù)字等等,在本文整理了一些,感興趣的可以參考下
    2013-10-10
  • javascript delete 使用示例代碼

    javascript delete 使用示例代碼

    javascript delete的一些技巧,主要是從對(duì)象中刪除一個(gè)屬性,或從數(shù)組中刪除一個(gè)元素。具體的使用方法,可以參考下面的代碼。
    2010-03-03
  • javascript學(xué)習(xí)筆記(三)顯示當(dāng)時(shí)時(shí)間的代碼

    javascript學(xué)習(xí)筆記(三)顯示當(dāng)時(shí)時(shí)間的代碼

    主要是為了熟悉javascript中在date對(duì)象,大家可以看下。
    2011-04-04
  • JS基礎(chǔ)隨筆(菜鳥(niǎo)必看篇)

    JS基礎(chǔ)隨筆(菜鳥(niǎo)必看篇)

    下面小編就為大家?guī)?lái)一篇JS基礎(chǔ)隨筆(菜鳥(niǎo)必看篇)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-07-07
  • appendChild() 或 insertBefore()使用與區(qū)別介紹

    appendChild() 或 insertBefore()使用與區(qū)別介紹

    appendChild() 方法在節(jié)點(diǎn)的子節(jié)點(diǎn)列表末添加新的子節(jié)點(diǎn)。insertBefore() 方法在節(jié)點(diǎn)的子節(jié)點(diǎn)列表任意位置插入新的節(jié)點(diǎn),下面為大家介紹下具體的使用,感興趣的朋友不要錯(cuò)過(guò)
    2013-10-10
  • js用Date對(duì)象處理時(shí)間實(shí)現(xiàn)思路及代碼

    js用Date對(duì)象處理時(shí)間實(shí)現(xiàn)思路及代碼

    本文主要是為了解決從XML文件中讀取數(shù)據(jù),然后將里面的數(shù)據(jù)返回到頁(yè)面中用一個(gè)第三方插件進(jìn)行繪圖,并且提供了詳細(xì)的解決方法,感興趣的朋友可以了解下或許對(duì)你有所幫助
    2013-01-01

最新評(píng)論