最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

深入解析HTML5中的Blob對(duì)象的使用

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

HTML5中的Blob對(duì)象和MYSQL中的BLOB類型在概念上是有點(diǎn)區(qū)別的。MYSQL中的BLOB類型就只是個(gè)二進(jìn)制數(shù)據(jù)容器。而HTML5中的Blob對(duì)象除了存放二進(jìn)制數(shù)據(jù)外還可以設(shè)置這個(gè)數(shù)據(jù)的MINE類型,這相當(dāng)于對(duì)文件的儲(chǔ)存,其它很多二進(jìn)制對(duì)象也是從這個(gè)對(duì)象繼承的。
  在稍低版本的現(xiàn)代瀏覽器中,這個(gè)Blob對(duì)象還沒(méi)規(guī)范化,因此需要BlobBuilder之類的方式來(lái)創(chuàng)建。但是現(xiàn)在Blob已經(jīng)規(guī)范到可以直接new它的構(gòu)造器Blob來(lái)創(chuàng)建了,而且瀏覽器幾乎都已經(jīng)支持了這個(gè)方式,所以對(duì)于舊標(biāo)準(zhǔn)咱就沒(méi)必要糾結(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)建了一個(gè)Blob對(duì)象,注意Blob這個(gè)構(gòu)造器的參數(shù)比較詭異,第一個(gè)參數(shù)是一組數(shù)據(jù),所以必須是數(shù)組,即使像上面的例子一樣只有一個(gè)字符串也必須用數(shù)組裝起來(lái)。第二個(gè)參數(shù)是對(duì)這一Blob對(duì)象的配置屬性,目前也只有一個(gè)type也就是相關(guān)的MIME需要設(shè)置,使用key-value的方式也許是為了今后的擴(kuò)展。
  那么,把數(shù)據(jù)做成Blob有什么用呢?對(duì)于Blob對(duì)象,我們可以創(chuàng)建出一個(gè)URL來(lái)訪問(wèn)它。使用URL對(duì)象的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,任何瀏覽器支持的類型都可以這么用。而且這個(gè)Blob-URL的生存周期是從創(chuàng)建到文檔釋放,不會(huì)造成資源的浪費(fèi)。
  Blob是一個(gè)HTML5中很基本的二進(jìn)制數(shù)據(jù)對(duì)象,很多方法的操作參數(shù)都支持使用Blob,這個(gè)我一下也列舉不出??傊?,幾乎所有參數(shù)類型是二進(jìn)制數(shù)據(jù)的方法都支持使用Blob作為參數(shù)就對(duì)了。所以把數(shù)據(jù)做成Blob可以讓之后的一些列操作變得更方便。

方法

slice()

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


BlobPropertyBag

一個(gè)包含有兩個(gè)屬性type和endings的對(duì)象.
type
設(shè)置該Blob對(duì)象的type屬性.
endings(已廢棄)
對(duì)應(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  

 
等價(jià)于:

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對(duì)象的方式,但該方式現(xiàn)在已經(jīng)廢棄,所以不應(yīng)該再使用了.

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

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

相關(guān)文章

  • HTML5實(shí)現(xiàn)的移動(dòng)端購(gòu)物車自動(dòng)結(jié)算功能示例代碼

    本文介紹HTML5實(shí)現(xiàn)移動(dòng)端購(gòu)物車自動(dòng)結(jié)算,通過(guò)WebStorage、事件監(jiān)聽(tīng)、DOM操作等技術(shù),確保實(shí)時(shí)更新與數(shù)據(jù)同步,優(yōu)化性能及無(wú)障礙性,提升用戶體驗(yàn),感興趣的朋友一起看看吧
    2025-06-18
  • HTML5 中的<button>標(biāo)簽用法和特征

    在HTML5中,<button>標(biāo)簽用于定義一個(gè)可點(diǎn)擊的按鈕,它是創(chuàng)建交互式網(wǎng)頁(yè)的重要元素之一,本文將深入解析HTML5中的<button>標(biāo)簽,詳細(xì)介紹其屬性、樣式以及實(shí)際
    2025-06-18
  • 基于 HTML5 Canvas 實(shí)現(xiàn)圖片旋轉(zhuǎn)與下載功能(完整代碼展示)

    本文將深入剖析一段基于 HTML5 Canvas 的代碼,該代碼實(shí)現(xiàn)了圖片的旋轉(zhuǎn)(90 度和 180 度)以及旋轉(zhuǎn)后圖片的下載功能,通過(guò)對(duì)代碼的解讀,我們可以學(xué)習(xí)到如何利用 Canvas API
    2025-06-18
  • HTML5 getUserMedia API網(wǎng)頁(yè)錄音實(shí)現(xiàn)指南示例小結(jié)

    本教程將指導(dǎo)你如何利用這一API,結(jié)合Web Audio API,實(shí)現(xiàn)網(wǎng)頁(yè)錄音功能,從獲取音頻流到處理和保存錄音,整個(gè)過(guò)程將逐步詳解,此外,還討論了getUserMedia API的使用限制和最
    2025-06-16
  • HTML5 搜索框Search Box詳解

    HTML5的搜索框是一個(gè)強(qiáng)大的工具,能夠有效提升用戶體驗(yàn),通過(guò)結(jié)合自動(dòng)補(bǔ)全功能和適當(dāng)?shù)臉邮?,可以?chuàng)建出既美觀又實(shí)用的搜索界面,這篇文章給大家介紹HTML5 搜索框Search Box
    2025-06-13
  • 全面解析HTML5中Checkbox標(biāo)簽

    Checkbox是HTML5中非常重要的表單元素之一,通過(guò)合理使用其屬性和樣式自定義方法,可以為用戶提供豐富多樣的交互體驗(yàn),這篇文章給大家介紹HTML5中Checkbox標(biāo)簽的深入全面解
    2025-06-13
  • HTML5無(wú)插件拖拽圖片上傳功能實(shí)現(xiàn)過(guò)程

    本實(shí)例展示了一種基于HTML5技術(shù)的圖片上傳功能,無(wú)需外部插件即可通過(guò)拖放圖片實(shí)現(xiàn)上傳,涉及到HTML5的拖放API和File API,以及使用CSS來(lái)增強(qiáng)用戶界面的交互性和視覺(jué)反饋,
    2025-05-16
  • HTML5 定位大全之相對(duì)定位、絕對(duì)定位和固定定位

    在HTML5和CSS中,定位(positioning)是控制元素在頁(yè)面上位置的重要機(jī)制,主要有四種定位方式:靜態(tài)定位(static)、相對(duì)定位(relative)、絕對(duì)定位(absolute)和固定定位(fixed),
    2025-05-13
  • HTML5中的Microdata與歷史記錄管理詳解

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

    在HTML語(yǔ)法中,表格主要通過(guò)< table >、< tr >和< td >3個(gè)標(biāo)簽構(gòu)成,本文通過(guò)實(shí)例代碼講解HTML5表格語(yǔ)法格式,感興趣的朋友一起看看吧
    2025-04-21

最新評(píng)論

响水县| 鄂尔多斯市| 邢台县| 扎鲁特旗| 新巴尔虎右旗| 辉南县| 深泽县| 黑山县| 韩城市| 诸城市| 民权县| 泸水县| 绿春县| 遵化市| 桐柏县| 禄劝| 新巴尔虎右旗| 武宣县| 务川| 武山县| 二连浩特市| 田东县| 安化县| 修水县| 和林格尔县| 当涂县| 仁布县| 项城市| 朝阳市| 白玉县| 五河县| 武胜县| 铜鼓县| 和政县| 慈利县| 荃湾区| 通化市| 临澧县| 马山县| 绥德县| 基隆市|