Javascript:Blobベース
1931 ワード
参考資料Blob An Introduction To JavaScript Blobs and File Interface JavaScript ArayBuffers And Type Arays MIME type FileReader
一、Blob略述
Blobオブジェクトは、ファイルデータを保存するバイトのセグメントを表すクラスのファイルオブジェクトである.本当のファイルを引用したわけではないですが、自分のsizeとMIME typeがあります.ファイルと同じです.Blobオブジェクトは、自身のサイズやブラウザによってメモリやファイルシステムに保存されます.ファイルを使うようにblobを使うことができます.
二、Blobを一つ作成する.
ブラウザでローカルファイルを開くと、urlが「file://」であることが分かります.冒頭のfile:/URLはローカルファイルシステムの真実なファイルを参照しています.似たように、Blob:/URLは一つのBlobオブジェクトを指しています.ほとんどのurlsが使えるところはblob:/URLsが使えます.
一、Blob略述
Blobオブジェクトは、ファイルデータを保存するバイトのセグメントを表すクラスのファイルオブジェクトである.本当のファイルを引用したわけではないですが、自分のsizeとMIME typeがあります.ファイルと同じです.Blobオブジェクトは、自身のサイズやブラウザによってメモリやファイルシステムに保存されます.ファイルを使うようにblobを使うことができます.
二、Blobを一つ作成する.
// ,
// , blob MIME ,
var myBlob = new Blob(["This is my blob content"], {type : "text/plain"})
blobからデータを読み取るには、FileReaderが必要です.var myBlob = new Blob(["This is my blob content"], {type : "text/plain"})
var myReader = new FileReader()
// “loadend” , reader blob
myReader.addEventListener("loadend", function(e){
document.getElementById("paragraph").innerHTML = e.srcElement.result
})
// ,
myReader.readAsText(myBlob);
三、Blob URLsブラウザでローカルファイルを開くと、urlが「file://」であることが分かります.冒頭のfile:/URLはローカルファイルシステムの真実なファイルを参照しています.似たように、Blob:/URLは一つのBlobオブジェクトを指しています.ほとんどのurlsが使えるところはblob:/URLsが使えます.
createObjectURL
オブジェクトを使って、blobのためにurlを作成したいです.var blob = new Blob(['body { background-color: yellow; }'], {type: 'text/css'})
var link = document.createElement('link')
link.rel = 'stylesheet'
// createObjectURL blob URL
link.href = window.URL.createObjectURL(blob)
document.body.appendChild(link)
これを利用してインラインのWeb Workerを作成することができます.// blob js
// blob worker
var blob = new Blob([ "onmessage = function(e) { postMessage('msg from worker'); }"])
// url blob
var blobURL = window.URL.createObjectURL(blob)
var worker = new Worker(blobURL) // worker,Worker url
worker.onmessage = function (e) {
console.log(e.data)
}
worker.postMessage('inline worker!')