การบีบอัดและการยกเลิกการบีบอัดในเบราว์เซอร์ด้วย Compression Streams API

เขียนเว็บแอปขนาดเล็กที่ไม่จําเป็นต้องส่งไลบรารีการบีบอัดหรือการขยายการบีบอัดด้วยตนเอง

Compression Streams API ใช้สำหรับบีบอัดและขยายสตรีมข้อมูลโดยใช้รูปแบบ gzip หรือ deflate (หรือ deflate-raw)

เมื่อใช้การบีบอัดในตัว แอปพลิเคชัน JavaScript ไม่จำเป็นต้องมีไลบรารีการบีบอัด ทำให้ขนาดการดาวน์โหลดของแอปพลิเคชันเล็กลง ตัวอย่างเทคโนโลยี Chrome และ Safari เวอร์ชันเสถียร รองรับ API ที่มีประโยชน์นี้แล้ว การบีบอัดข้อมูลจะแสดงที่นี่

const readableStream = await fetch('lorem.txt').then(
  (response) => response.body
);
const compressedReadableStream = readableStream.pipeThrough(
  new CompressionStream('gzip')
);

หากต้องการคลายการบีบอัด ให้ส่งผ่านสตรีมแบบบีบอัดผ่านสตรีมการคลายการบีบอัด

const decompressedReadableStream = compressedReadableStream.pipeThrough(
  new DecompressionStream('gzip')
);

สาธิต

การสนับสนุนเบราว์เซอร์

Compress Streams API รองรับใน Chromium 80 และ Safari Technology Preview 152