IE10의 새로운 Blob 생성자

Windows 8 Release Preview의 IE10에는 Blob 생성자를 지원하는 기능이 추가되었습니다. 우리는 이전에 IE10에서 지원하는 BlobBuilder 인터페이스에 대해 설명하고 데모를 소개했습니다. 파일 API: 작성자 W3C 작업 초안에서 현재 작업이 진행되고 있는 이 인터페이스를 사용하면 개발자가 클라이언트 PC에서 파일로 작업할 수 있습니다. 최근에 W3C 작업 그룹에서는 새로운 Blob 생성자 대신 BlobBuilder 인터페이스를 사용하지 말 것을 권고했습니다. 이 글에서는 둘 사이의 차이점을 설명해 보겠습니다.

Blob 생성자와 BlobBuilder 인터페이스 비교

Blob 생성자와 BlobBuilder 인터페이스 모두 웹 개발자가 클라이언트에서 파일을 생성할 수 있게 해줍니다. 둘의 차이는 구문에 있습니다. BlobBuilder는 추가 메서드에 별도로 호출하는 동안 Blob의 각 부분을 추가해야 하는 반면 Blob 생성자는 인수에 따라 배열할 수 있습니다 다음은 BlobBuilderBlob 생성자를 모두 사용하여 간단한 텍스트 파일을 만드는 방법입니다.

// using the Blob constructor

var textBlob1 = new Blob(["Hello", " world!"], { type: "text/plain", endings: "transparent" });

 

// using the MSBlobBuilder interface

var bb = new MSBlobBuilder();

bb.append("Hello");

bb.append(" world!");

var textBlob2 = bb.getBlob("text/plain");

Blob 생성자는 두 가지 인수를 취하는데 첫 번째 인수는 Blob에 포함하기 위한 콘텐츠 배열이고, 두 번째 인수는 2개의 멤버인 typeendings를 포함할 수 있는 선택적인 사전 개체입니다. Blob의 콘텐츠 배열에는 Blob 개체, 텍스트 문자열, 배열 버퍼 등이 포함될 수 있습니다.

Firefox와 Chrome의 최신 버전에서도 Blob 생성자를 지원합니다. IE10에서는 여전히 새로운 Blob 생성자와 함께 접두사를 사용하는 MSBlobBuilder 인터페이스를 지원하고 있습니다. 현재 Firefox와 Chrome에서도 벤더 접두사를 사용하는 BlobBuilder 인터페이스를 지원합니다.

Blob 생성자 검색 기능

코드를 실행 중인 브라우저에서 Blob 생성자를 사용할 수 있을 경우에는 설정을 위해 모든 새로운 기능과 더불어 검색 기능을 사용하도록 권장합니다. 다음과 같이 사용할 수도 있습니다.

if (typeof Blob !== "undefined") {

// use the Blob constructor

} elseif (window.MSBlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder) {

// use the supported vendor-prefixed BlobBuilder

} else {

// neither Blob constructor nor BlobBuilder is supported

}

F12 개발자 도구 콘솔 창을 열어 놓은 상태에서 BlobBuilder 테스트 드라이브 데모를 실행하면 블로그가 Blob 생성자로 제작되는지 아니면 BlobBuilder로 제작되는지의 여부를 기록하게 됩니다.

Blob 생성자가 추가됨에 따라 브라우저 전반에 걸쳐 표준 호환 코드를 작성할 수 있게 되었습니다.

- Internet Explorer 프로그램 관리자, Sharon Newman