Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

วัตถุ Blob ใน JavaScript


วัตถุ Blob (Binary Large Object) ใช้สำหรับแทนข้อมูลดิบ (raw data) ที่ไม่สามารถเปลี่ยนแปลงได้ (immutable) โดยมีคุณสมบัติ size (ขนาด) และ type (MIME type) เหมือนกับไฟล์ทั่วไป ไฟล์ (File) เป็นคลาสลูกที่สืบทอดมาจาก Blob ดังนั้น Blob จึงสามารถใช้ได้ในทุกที่ที่คาดหวังไฟล์

ตัวอย่างโค้ด

<!DOCTYPE html>
<html lang="th">
<head>
  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>Blob ใน JavaScript</title>
  <style>
    body { font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif; }
    .result { font-size: 18px; font-weight: 500; color: rebeccapurple; }
  </style>
</head>
<body>
  <h1>วัตถุ Blob ใน JavaScript</h1>
  <div class="result"></div>
  <button class="Btn">คลิกที่นี่</button>
  <h3>กดปุ่มด้านบนเพื่อสร้างและแสดง Blob</h3>
  <script>
    const resEle = document.querySelector(".result");
    document.querySelector(".Btn").addEventListener("click", () => {
      const blob = new Blob(["This is a sample blob"], { type: "text/plain" });
      resEle.innerHTML = "blob.type = " + blob.type + "<br>";
      resEle.innerHTML += "blob.size = " + blob.size;
    });
  </script>
</body>
</html>

ผลลัพธ์

โค้ดข้างต้นจะแสดงผลดังนี้:

วัตถุ Blob ใน JavaScript

เมื่อกดปุ่ม "คลิกที่นี่":

วัตถุ Blob ใน JavaScript

คำอธิบายเพิ่มเติม

  • Blob Constructor: new Blob(array, options) โดย array เป็นข้อมูล (string, ArrayBuffer, Blob ฯลฯ) และ options มี type (MIME type) และ endings (การจัดการบรรทัดใหม่)
  • การใช้งานจริง: Blob ใช้ในการดาวน์โหลดไฟล์, จัดการรูปภาพ, วิดีโอ, เสียง หรือส่งข้อมูลไบนารีผ่าน mạng
  • URL.createObjectURL(): สร้าง URL ชั่วคราวเพื่ออ้างอิง Blob (ต้องเรียก revokeObjectURL() เมื่อไม่ใช้แล้วเพื่อปล่อยหน่วยความจำ)