Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Sử dụng Blob.slice() trong HTML5

Phương thức Blob.slice() (cũng trên File) tạo một Blob mới chứa dữ liệu trong khoảng byte chỉ định của Blob gốc. Không sao chép dữ liệu (zero-copy), rất hiệu quả.

Cú pháp

var newBlob = blob.slice(start, end, contentType);
  • start: Byte bắt đầu (mặc định 0).
  • end: Byte kết thúc (không bao gồm, mặc định blob.size).
  • contentType: MIME type blob mới (mặc định kế thừa).

Ví dụ: Gửi dữ liệu nhị phân qua XHR

var xhr = new XMLHttpRequest();
xhr.open("POST", url, true);
xhr.onload = function(event) { /* handle response */ };

// Tạo blob từ text (demo)
var blob = new Blob(['demo'], { type: 'text/plain' });

// Gửi toàn bộ hoặc một phần: blob.slice(0, 100)
xhr.send(blob);

Ứng dụng chính

  • Chunked Upload: Chia file lớn thành nhiều part, upload song song/tiếp tục được.
  • Streaming/Processing: Đọc/xử lý file lớn từng phần (video, audio, log).
  • Client-side editing: Cắt ghép video/audio/image trước khi upload.

Lưu ý

  • slice() trả về Blob mới, không sửa đổi blob gốc.
  • Hỗ trợ tốt trên tất cả trình duyệt hiện đại (IE10+).
  • Kết hợp FileReader.readAsArrayBuffer() hoặc readAsDataURL() để đọc nội dung slice.