首頁 web前端 H5教程 深入解析HTML5中的Blob物件的使用_html5教學技巧

深入解析HTML5中的Blob物件的使用_html5教學技巧

May 16, 2016 pm 03:46 PM
blob html

HTML5中的Blob物件和MYSQL中的BLOB類型在概念上是有點區別的。 MYSQL中的BLOB型別就只是個二進位資料容器。而HTML5中的Blob物件除了存放二進位資料外還可以設定這個資料的MINE類型,這相當於對檔案的儲存,其它很多二進位物件也是從這個物件繼承的。
  在稍低版本的現代瀏覽器中,這個Blob物件還沒規範化,因此需要BlobBuilder之類的方式來創建。但是現在Blob已經規範到可以直接new它的構造器Blob來創建了,而且瀏覽器幾乎都已經支援了這個方式,所以對於舊標準咱就沒必要糾結了。

CSS Code複製內容到剪貼簿
  1. var data='次碳酸鈷' ;   
  2. var blob=new Blob([data],{"type":"text/html"
  3. "text/html"
  4. });   
console.log(blob);  



這樣我們就創建了一個Blob對象,注意Blob這個構造器的參數比較詭異,第一個參數是一組數據,所以必須是數組,即使像上面的例子一樣只有一個字符串也必須用數組裝起來。第二個參數是對這一Blob物件的配置屬性,目前也只有一個type也就是相關的MIME需要設置,使用key-value的方式也許是為了今後的擴展。   那麼,把資料做成Blob有什麼用呢?對於Blob對象,我們可以建立出一個URL來存取它。使用URL物件的createObjectURL方法。
CSS Code
  1. 複製內容到剪貼簿 var data=
  2. '次碳酸鈷'
  3. ;    var blob=new Blob([data],{"type":
  4. "text/html"
  5. "text/html" });   
  6. onload=function(){   
  7.   var iframe=document.createElement("iframe"
  8. );   
  9.   iframe.
  10. src
  11. =URL.createObjectURL(blob);   

  document.body.appendChild(iframe);   


};  


 不僅是上面範例中的text/html,任何瀏覽器支援的類型都可以這麼用。而這個Blob-URL的生存週期是從創建到文件釋放,不會造成資源的浪費。

  Blob是一個HTML5中很基本的二進位資料對象,很多方法的操作參數都支援使用Blob,這個我一下也列舉不出。總之,幾乎所有參數類型都是二進位資料的方法都支援使用Blob作為參數就對了。所以把資料做成Blob可以讓之後的一些列操作變得更方便。
方法 slice()
傳回一個新的Blob物件,包含了來源Blob物件中指定範圍內的資料.
  1. CSS Code
  2. 複製內容到剪貼簿
  3. Blob slice(   
  4.   optional long long start,   
  5.   optional long long end,   
  optional DOMString contentType    };  

參數
start 可選
開始索引,可以為負數,語法類似於數組的slice方法.預設值為0.
end 可選
結束索引,可以為負數,語法類似於數組的slice方法.預設值為最後一個索引.
contentType 可選
新的Blob物件的MIME類型,這個值將會成為新的Blob物件的type屬性的值,預設為一個空字串.
傳回值
一個新的Blob物件,包含了來源Blob物件中指定範圍內的資料.
注意
如果start參數的值比來源Blob物件的size屬性的值還大,則傳回的Blob物件的size值為0,也就是不包含任何資料.


BlobPropertyBag

一個包含有兩個屬性type和endings的物件.
type
設定該Blob物件的type屬性.
endings(已廢棄)
對應於BlobBuilder.append()方法的endings參數.此參數的值可以是"transparent"或"native".
Blob建構子用法舉例

下面的程式碼:

CSS Code複製內容到剪貼簿
  1. var aFileParts = ["hey!" ];   
  2. var oMyBlob = new Blob(aFileParts, { "type" : 
 
等價於:



CSS Code
複製內容到剪貼簿
    var oBuilder = new BlobBuilder();   
  1. var aFileParts = [
  2. "hey!" ];    oBuilder.append(aFileParts[0]);   
  3. var oMyBlob = oBuilder.getBlob(
  4. "text/xml"); // the blob  
 
BlobBuilder介面提供了另外一種創建Blob物件的方式,但該方式現在已經廢棄,所以不應該再使用了.


範例:使用類型陣列和Blob物件建立一個物件URL

CSS Code
複製內容到剪貼簿
  1. var typedArray = GetTheTypedArraySomehow();   
  2. var blob = new Blob([typedArray], {type: 
  3. "application/octet-binary"}); // 傳入一個合適的類型/  var 
  4. url
  5.  = URL.createObjectURL(blob);    // 會產生一個類似blob:d3958f5c-0777-0845-9dcf-2cb28783acaf這樣的URL字串   
  6. // 你可以像使用一個普通URL一樣使用它,比如用在img.
  7. src
  8. 上.  
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

HTML 中的表格邊框 HTML 中的表格邊框 Sep 04, 2024 pm 04:49 PM

HTML 表格邊框指南。在這裡,我們以 HTML 中的表格邊框為例,討論定義表格邊框的多種方法。

HTML 中的巢狀表 HTML 中的巢狀表 Sep 04, 2024 pm 04:49 PM

這是 HTML 中巢狀表的指南。這裡我們討論如何在表中建立表格以及對應的範例。

HTML 左邊距 HTML 左邊距 Sep 04, 2024 pm 04:48 PM

HTML 左邊距指南。在這裡,我們討論 HTML margin-left 的簡要概述及其範例及其程式碼實作。

HTML 表格佈局 HTML 表格佈局 Sep 04, 2024 pm 04:54 PM

HTML 表格佈局指南。在這裡,我們詳細討論 HTML 表格佈局的值以及範例和輸出。

HTML 有序列表 HTML 有序列表 Sep 04, 2024 pm 04:43 PM

HTML 有序列表指南。在這裡我們也分別討論了 HTML 有序列表和類型的介紹以及它們的範例

HTML 輸入佔位符 HTML 輸入佔位符 Sep 04, 2024 pm 04:54 PM

HTML 輸入佔位符指南。在這裡,我們討論 HTML 輸入佔位符的範例以及程式碼和輸出。

在 HTML 中移動文字 在 HTML 中移動文字 Sep 04, 2024 pm 04:45 PM

HTML 中的文字移動指南。在這裡我們討論一下marquee標籤如何使用語法和實作範例。

您如何在PHP中解析和處理HTML/XML? 您如何在PHP中解析和處理HTML/XML? Feb 07, 2025 am 11:57 AM

本教程演示瞭如何使用PHP有效地處理XML文檔。 XML(可擴展的標記語言)是一種用於人類可讀性和機器解析的多功能文本標記語言。它通常用於數據存儲

See all articles