HTML 5のバイナリ大オブジェクトBlob(回転)
7002 ワード
HTML 5のBlobオブジェクトとMYSQLのBLOBタイプは概念的に少し違います.MYSQLのBLOBタイプはバイナリコンテナにすぎません.HTML 5のBlobオブジェクトはバイナリデータを格納するほか、このデータのMINEタイプを設定することができます.これはファイルの格納に相当し、他の多くのバイナリオブジェクトもこのオブジェクトから継承されています.
注意:一部のブラウザでは
ツールバーの
属性名
を選択します.
説明
コンストラクタ
パラメータ
追加する配列を含む配列
オブジェクト、設定
方法
slice()
ソース
パラメータ
オプション
インデックスを開始します.負の数で、構文は配列に似ています.
オプション
インデックスを終了します.負の数で、構文は配列に似ています.
オプション
新しい
戻り値
ソース
に注意
BlobPropertyBag
2つの属性
設定
に対応
Blobコンストラクション関数の使用例
次のコード:
例:タイプ配列とBlobオブジェクトを使用してオブジェクトURLを作成する
ブラウザの互換性
Feature
Chrome
Firefox (Gecko)
Internet Explorer
Opera
Safari (WebKit)
Basic support
5
4
10
11.10
5.1
2110 webkit‡
135 moz‡
10
12
5.1 (534.29) webkit
20
13.0 (13.0)
10
12.10
6 (536.10)
注意:slice()の実装について
このバージョンの
Gecko 13.0(Firefox 13.0/Thunderbird 13.0/SeaMonkey 2.10)とChrome 21から、
Geckoコメント
Gecko 12.0(Firefox 12.0/Thunderbird 12.0/SeaMonkey 2.9)の前に、パラメータ
HTML 5のBlobオブジェクトの概要
HTML 5のBlobオブジェクトとMYSQLのBLOBタイプは概念的に少し違います.MYSQLのBLOBタイプはバイナリコンテナにすぎません.HTML 5のBlobオブジェクトはバイナリデータを格納するほか、このデータのMINEタイプを設定することができます.これはファイルの格納に相当し、他の多くのバイナリオブジェクトもこのオブジェクトから継承されています.現代のブラウザでは、このBlobオブジェクトはまだ正規化されていないため、BlobBuilderのような方法で作成する必要があります.しかし、Blobは現在、そのコンストラクタBlobを直接newして作成できるように規範化されており、ブラウザはほとんどこの方式をサポートしているので、古い基準にこだわる必要はありません.
これにより、Blobオブジェクトを作成しました.Blobというコンストラクタのパラメータは奇妙で、最初のパラメータはデータのセットなので、配列でなければなりません.上記の例のように文字列が1つでも配列でなければなりません.2番目のパラメータはこのBlobオブジェクトの構成プロパティであり,現在では1つのtype,すなわち関連するMIMEのみが設定される必要があり,key-valueを使用する方法は今後の拡張のためかもしれない.では、データをBlobにするのに何の役に立つのでしょうか.Blobオブジェクトの場合、URLを作成して質問することができます.URLオブジェクトのcreateObjectURLメソッドを使用します.
上記の例のtext/htmlだけでなく、ブラウザでサポートされているタイプでも使用できます.また、このBlob-URLのライフサイクルは、作成からドキュメントへの解放であり、リソースの浪費を招くことはありません.BlobはHTML 5の基本的なバイナリデータオブジェクトであり、多くの方法の操作パラメータがBlobの使用をサポートしているが、これは私には挙げられない.つまり,ほとんどのパラメータタイプがバイナリデータである方法ではBlobをパラメータとして使用することがサポートされている.そのため、データをBlobにすることで、その後の列の操作をより便利にすることができます.
Blob
のオブジェクトは、読み取り専用の元のデータを含むクラスファイルオブジェクトである.Blob
オブジェクトのデータは、JavaScriptのオリジナル形式であるとは限らない.File
インタフェースは、Blob
に基づく、Blob
の機能を継承し、ユーザコンピュータ上のローカルファイルを拡張サポートする.Blob
のオブジェクトを作成する方法はいくつかあり、Blob
のコンストラクタを呼び出すことができ、Blob
のあるオブジェクトのslice()
を使用して別のBlob
のオブジェクトを切り出すこともできるし、canvas
のオブジェクトのtoBlob
のメソッドを呼び出すこともできる.注意:一部のブラウザでは
slice()
にはプレフィックスがあります.Firefox 12以前のバージョンではblob.mozSlice(),
Safariではblob.webkitSlice()
. ツールバーの
属性名
を選択します.
説明
size
unsigned long long
Blob ( )
.読み取り専用type
DOMString
Blob MIME
を示す文字列.タイプが不明な場合、この値は空の文字列です.読み取り専用コンストラクタ
Blob Blob(
[optional] Array parts,
[optional] BlobPropertyBag properties
);
パラメータ
parts
追加する配列を含む配列
Blob
データ.配列要素は任意の複数であってもよいArrayBuffer,ArrayBufferView
(typed array), Blob
、またはDOMString
の対象.properties
オブジェクト、設定
Blob
.表示BlobPropertyBag
節方法
slice()
ソース
Blob
を含む新しいBlob
オブジェクトを返す.Blob slice(
optional long long start,
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
2つの属性
type
およびendings
を含むオブジェクト.type
設定
Blob
type
. endings( )
に対応
BlobBuilder.append()
メソッドのendings
パラメータ.このパラメータの値は「transparent」または「native」とすることができる.Blobコンストラクション関数の使用例
次のコード:
var aFileParts = ["hey!"];
var oMyBlob = new Blob(aFileParts, { "type" : "text\/xml" }); // the blob
例:タイプ配列とBlobオブジェクトを使用してオブジェクトURLを作成する
var typedArray = GetTheTypedArraySomehow();
var blob = new Blob([typedArray], {type: "application/octet-binary"}); // MIME
var url = URL.createObjectURL(blob);
// blob:d3958f5c-0777-0845-9dcf-2cb28783acaf URL
// URL , img.src .
ブラウザの互換性
Feature
Chrome
Firefox (Gecko)
Internet Explorer
Opera
Safari (WebKit)
Basic support
5
4
10
11.10
5.1
slice()
2110 webkit‡
135 moz‡
10
12
5.1 (534.29) webkit
Blob()
constructor 20
13.0 (13.0)
10
12.10
6 (536.10)
注意:slice()の実装について
slice()
はlength
を用いる、新たな Blob
への移行が必要であることを示す.パラメータ値start + length
がソースBlob
である場合、返されるBlob
オブジェクトはstart
からBlob
を含む.このバージョンの
slice()
はFirefox 4,WebKit,Opera 11.10に実装されている.しかし、この文法は私たちがよく使うArray.slice()
およびString.slice()
の文法とは異なるため、廃棄されている.GeckoとWebKitは現在、新版のslice
文法をサポートしている.Gecko 13.0(Firefox 13.0/Thunderbird 13.0/SeaMonkey 2.10)とChrome 21から、
slice()
はプレフィックスを削除します.Geckoコメント
Gecko 12.0(Firefox 12.0/Thunderbird 12.0/SeaMonkey 2.9)の前に、パラメータ
slice()
とstart
の値が64ビットの符号なし数字の範囲を超えてはいけないというバグがあり、現在修復されている.HTML 5のBlobオブジェクトの概要
HTML 5のBlobオブジェクトとMYSQLのBLOBタイプは概念的に少し違います.MYSQLのBLOBタイプはバイナリコンテナにすぎません.HTML 5のBlobオブジェクトはバイナリデータを格納するほか、このデータのMINEタイプを設定することができます.これはファイルの格納に相当し、他の多くのバイナリオブジェクトもこのオブジェクトから継承されています.現代のブラウザでは、このBlobオブジェクトはまだ正規化されていないため、BlobBuilderのような方法で作成する必要があります.しかし、Blobは現在、そのコンストラクタBlobを直接newして作成できるように規範化されており、ブラウザはほとんどこの方式をサポートしているので、古い基準にこだわる必要はありません.
var data=' ';
var blob=new Blob([data],{"type":"text/html"});
console.log(blob);
これにより、Blobオブジェクトを作成しました.Blobというコンストラクタのパラメータは奇妙で、最初のパラメータはデータのセットなので、配列でなければなりません.上記の例のように文字列が1つでも配列でなければなりません.2番目のパラメータはこのBlobオブジェクトの構成プロパティであり,現在では1つのtype,すなわち関連するMIMEのみが設定される必要があり,key-valueを使用する方法は今後の拡張のためかもしれない.では、データをBlobにするのに何の役に立つのでしょうか.Blobオブジェクトの場合、URLを作成して質問することができます.URLオブジェクトのcreateObjectURLメソッドを使用します.
var data=' ';
var blob=new Blob([data],{"type":"text/html"});
onload=function(){
var iframe=document.createElement("iframe");
iframe.src=URL.createObjectURL(blob);
document.body.appendChild(iframe);
};
上記の例のtext/htmlだけでなく、ブラウザでサポートされているタイプでも使用できます.また、このBlob-URLのライフサイクルは、作成からドキュメントへの解放であり、リソースの浪費を招くことはありません.BlobはHTML 5の基本的なバイナリデータオブジェクトであり、多くの方法の操作パラメータがBlobの使用をサポートしているが、これは私には挙げられない.つまり,ほとんどのパラメータタイプがバイナリデータである方法ではBlobをパラメータとして使用することがサポートされている.そのため、データをBlobにすることで、その後の列の操作をより便利にすることができます.