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

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

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

แอปพลิเคชัน JavaScript ที่มีการบีบอัดในตัวไม่จำเป็นต้องมีไลบรารีการบีบอัด ซึ่งทำให้ขนาดการดาวน์โหลดของแอปพลิเคชันเล็กลง ตอนนี้ Chrome เวอร์ชันเสถียรและ Safari Technology Preview รองรับ 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')
);

สาธิต

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

Compression Streams API รองรับตั้งแต่ Chromium 80 และ Safari Technology Preview 152