การบีบอัดและการยกเลิกการบีบอัดในเบราว์เซอร์ด้วย 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')
);

เดโม

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

เรารองรับ Compression Streams API จาก Chromium 80 และ Safari Technology Preview 152 สำหรับเบราว์เซอร์อื่นๆ ให้ดูที่ CanIUse

กิตติกรรมประกาศ

รูปภาพหลักของ Matt Artz ใน Unsplash