首頁技術文章正文

Web前端培訓:Blob對象是什么?

更新時間:2022-10-25 來源:黑馬程序員 瀏覽量:

IT培訓班

  Blob對象就是一個包含只讀原始數(shù)據(jù)的類文件對象,其實File類型就派生子Blob類型,并且擴展了支持操作用戶本地文件的功能。Blob對象可以直接調用構造函數(shù)來生成。

var fileParts=['<a>hey man</a>'];
var myBlob=new Blob(fileParts, { "type":"text/xml"});

  Blob對象還支持slice()方法,用于對數(shù)據(jù)進行切割:

var yourBlob=myBlob.slice(10,20);

  File對象同樣繼承了Blob的slice()方法,可以利用此方法對File對象預先進行分割,然后再讀取、上傳,最后在服務器端進行組裝——異步上傳的原理就是這樣。如果再記住分割點,這樣即使網(wǎng)絡中途斷掉,也可以在下次傳輸時從斷點續(xù)傳。

  除了都接受Blob和File對象,這些方法另外一個共同點是,由于JavaScript本身基于事件驅動,這些和平臺相關的方法都是異步方法。即調用時立即返回,讀取文件操作完成后再觸發(fā)相應的load事件。

  除了load事件,F(xiàn)ileReader對象還會調用這樣一些事件處理程序。

  (1)onabort:當讀取操作被終止時調用(調用abort方法)

  (2)onerror:當讀取操作發(fā)送錯誤時調用。

  (3)onload:當讀取操作成功完成時調用。

  (4)onloadend:當讀取操作完成時調用,不管是成功還是失敗,該處理程序在onload或者onerror后調用。

  (5)onloadstart:當讀取操作將要開始之前調用。

  (6)onprogress:在讀取數(shù)據(jù)過程中周期性調用。該事件為最有用的事件,在加載較大的文件時,可以提供一個進度條讓用戶知道當前加載進度,不讓用戶產生焦躁感。

分享到:
在線咨詢 我要報名
和我們在線交談!