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

深入解析HTML5中的Blob對象的使用

  發(fā)布時間:2015-09-08 17:27:54   作者:佚名   我要評論
這篇文章主要介紹了深入解析HTML5中的Blob對象的使用,是HTML5入門學(xué)習中的基礎(chǔ)知識,需要的朋友可以參考下

HTML5中的Blob對象和MYSQL中的BLOB類型在概念上是有點區(qū)別的。MYSQL中的BLOB類型就只是個二進制數(shù)據(jù)容器。而HTML5中的Blob對象除了存放二進制數(shù)據(jù)外還可以設(shè)置這個數(shù)據(jù)的MINE類型,這相當于對文件的儲存,其它很多二進制對象也是從這個對象繼承的。
  在稍低版本的現(xiàn)代瀏覽器中,這個Blob對象還沒規(guī)范化,因此需要BlobBuilder之類的方式來創(chuàng)建。但是現(xiàn)在Blob已經(jīng)規(guī)范到可以直接new它的構(gòu)造器Blob來創(chuàng)建了,而且瀏覽器幾乎都已經(jīng)支持了這個方式,所以對于舊標準咱就沒必要糾結(jié)了。

CSS Code復(fù)制內(nèi)容到剪貼板
  1. var data='<b style="font-size:32px;color:red;">次碳酸鈷</b>';   
  2. var blob=new Blob([data],{"type":"text/html"});   
  3. console.log(blob);  

這樣我們就創(chuàng)建了一個Blob對象,注意Blob這個構(gòu)造器的參數(shù)比較詭異,第一個參數(shù)是一組數(shù)據(jù),所以必須是數(shù)組,即使像上面的例子一樣只有一個字符串也必須用數(shù)組裝起來。第二個參數(shù)是對這一Blob對象的配置屬性,目前也只有一個type也就是相關(guān)的MIME需要設(shè)置,使用key-value的方式也許是為了今后的擴展。
  那么,把數(shù)據(jù)做成Blob有什么用呢?對于Blob對象,我們可以創(chuàng)建出一個URL來訪問它。使用URL對象的createObjectURL方法。

CSS Code復(fù)制內(nèi)容到剪貼板
  1. var data='<b style="font-size:32px;color:red;">次碳酸鈷</b>';   
  2. var blob=new Blob([data],{"type":"text/html"});   
  3. onload=function(){   
  4.   var iframe=document.createElement("iframe");   
  5.   iframe.src=URL.createObjectURL(blob);   
  6.   document.body.appendChild(iframe);   
  7. };  

 不僅是上面例子中的text/html,任何瀏覽器支持的類型都可以這么用。而且這個Blob-URL的生存周期是從創(chuàng)建到文檔釋放,不會造成資源的浪費。
  Blob是一個HTML5中很基本的二進制數(shù)據(jù)對象,很多方法的操作參數(shù)都支持使用Blob,這個我一下也列舉不出??傊瑤缀跛袇?shù)類型是二進制數(shù)據(jù)的方法都支持使用Blob作為參數(shù)就對了。所以把數(shù)據(jù)做成Blob可以讓之后的一些列操作變得更方便。

方法

slice()

返回一個新的Blob對象,包含了源Blob對象中指定范圍內(nèi)的數(shù)據(jù).

CSS Code復(fù)制內(nèi)容到剪貼板
  1. Blob slice(   
  2.   optional long long start,   
  3.   optional long long end,   
  4.   optional DOMString contentType   
  5. };  

參數(shù)
start 可選
開始索引,可以為負數(shù),語法類似于數(shù)組的slice方法.默認值為0.
end 可選
結(jié)束索引,可以為負數(shù),語法類似于數(shù)組的slice方法.默認值為最后一個索引.
contentType 可選
新的Blob對象的MIME類型,這個值將會成為新的Blob對象的type屬性的值,默認為一個空字符串.
返回值
一個新的Blob對象,包含了源Blob對象中指定范圍內(nèi)的數(shù)據(jù).
注意
如果start參數(shù)的值比源Blob對象的size屬性的值還大,則返回的Blob對象的size值為0,也就是不包含任何數(shù)據(jù).


BlobPropertyBag

一個包含有兩個屬性type和endings的對象.
type
設(shè)置該Blob對象的type屬性.
endings(已廢棄)
對應(yīng)于BlobBuilder.append()方法的endings參數(shù).該參數(shù)的值可以是"transparent"或者"native".
Blob構(gòu)造函數(shù)用法舉例

下面的代碼:

CSS Code復(fù)制內(nèi)容到剪貼板
  1. var aFileParts = ["<a id=\"a\"><b id=\"b\">hey!<\/b><\/a>"];   
  2. var oMyBlob = new Blob(aFileParts, { "type" : "text\/xml" }); // the blob  

 
等價于:

CSS Code復(fù)制內(nèi)容到剪貼板
  1. var oBuilder = new BlobBuilder();   
  2. var aFileParts = ["<a id=\"a\"><b id=\"b\">hey!<\/b><\/a>"];   
  3. oBuilder.append(aFileParts[0]);   
  4. var oMyBlob = oBuilder.getBlob("text\/xml"); // the blob  

 
BlobBuilder接口提供了另外一種創(chuàng)建Blob對象的方式,但該方式現(xiàn)在已經(jīng)廢棄,所以不應(yīng)該再使用了.

例子:使用類型數(shù)組和Blob對象創(chuàng)建一個對象URL

CSS Code復(fù)制內(nèi)容到剪貼板
  1. var typedArray = GetTheTypedArraySomehow();   
  2. var blob = new Blob([typedArray], {type: "application/octet-binary"}); // 傳入一個合適的MIME類型   
  3. var url = URL.createObjectURL(blob);   
  4. // 會產(chǎn)生一個類似blob:d3958f5c-0777-0845-9dcf-2cb28783acaf這樣的URL字符串   
  5. // 你可以像使用一個普通URL那樣使用它,比如用在img.src上.  

相關(guān)文章

  • HTML5中的Microdata與歷史記錄管理詳解

    Microdata作為HTML5新增的一個特性,它允許開發(fā)者在HTML文檔中添加更多的語義信息,以便于搜索引擎和瀏覽器更好地理解頁面內(nèi)容,本文將探討HTML5中Microdata的使用方法以及
    2025-04-21
  • HTML5表格語法格式詳解

    在HTML語法中,表格主要通過< table >、< tr >和< td >3個標簽構(gòu)成,本文通過實例代碼講解HTML5表格語法格式,感興趣的朋友一起看看吧
    2025-04-21
  • html5的響應(yīng)式布局的方法示例詳解

    這篇文章主要介紹了HTML5中使用媒體查詢和Flexbox進行響應(yīng)式布局的方法,簡要介紹了CSS Grid布局的基礎(chǔ)知識和如何實現(xiàn)自動換行的網(wǎng)格布局,感興趣的朋友一起看看吧
    2025-04-21
  • 基于Canvas的Html5多時區(qū)動態(tài)時鐘實戰(zhàn)代碼

    本文介紹了如何使用Canvas在HTML5上實現(xiàn)一個多時區(qū)動態(tài)時鐘的web展示,通過Canvas的API,可以繪制出6個不同城市的時鐘,并且這些時鐘可以動態(tài)轉(zhuǎn)動,每個時鐘上都會標注出對應(yīng)的
    2025-03-11
  • HTML5 data-*自定義數(shù)據(jù)屬性的示例代碼

    HTML5的自定義數(shù)據(jù)屬性(data-*)提供了一種標準化的方法在HTML元素上存儲額外信息,可以通過JavaScript訪問、修改和在CSS中使用,文章還介紹了高級用法,如存儲JSON數(shù)據(jù)、事
    2025-03-11
  • HTML5中下拉框<select>標簽的屬性和樣式詳解

    在HTML5中,下拉框(<select>標簽)作為表單的重要組成部分,為用戶提供了一個從預(yù)定義選項中選擇值的方式,本文將深入探討<select>標簽的屬性、樣式,并重點介
    2025-02-27
  • HTML5 Input 日期選擇器詳解

    本文介紹了HTML5InputDatePicker對象表示HTML``元素,是HTML5中的新對象,介紹了日期、周、月份、時間、日期+時間、本地日期時間等不同類型的日期選擇器,感興趣的朋友一起看
    2025-02-17
  • HTML5超鏈接和圖片基礎(chǔ)用法詳解

    本文介紹了HTML5中的超鏈接、相對路徑和圖片的使用方法,超鏈接可以創(chuàng)建指向另一個文檔或頁面內(nèi)部書簽的鏈接,相對路徑用于在同一服務(wù)器內(nèi)部跳轉(zhuǎn)頁面,圖片標簽用于引入外部圖
    2025-02-17
  • HTML5超鏈接的創(chuàng)建方法

    本文介紹了HTML5超鏈接的創(chuàng)建方法,包括基本語法、創(chuàng)建圖像超鏈接的邊框去除方法以及錨點鏈接的使用,還討論了超鏈接的四種不同狀態(tài)(link、visited、hover、active)的CSS樣
    2025-02-17
  • HTML5使用details標簽:展開/收縮信息

    最近看一些技術(shù)網(wǎng)站發(fā)現(xiàn)了details 標簽的妙用,這個不用js即可實現(xiàn)展開/收縮信息,很方便用來讓用戶先才答案,然后下面點擊再給出答案的效果,這里就為大家簡單介紹一下,
    2024-11-03

最新評論