กลับหน้าหลัก · Back

ที่มาของข้อมูล

ราคาทองคำทั้งหมดบนหน้านี้อ้างอิงจากประกาศของสมาคมค้าทองคำไทยโดยตรง ไม่ได้ดึงจากแหล่งอื่นหรือตัวกลางใด

สถาปัตยกรรมการดึงข้อมูลฝั่งเซิร์ฟเวอร์Technical architecture · server-side fetch logic

สมาคมค้าทองคำไทย

Gold Traders Association

01

ทุกราคา ทั้งทองคำแท่งและทองรูปพรรณ มาจากหน้าประกาศราคาอย่างเป็นทางการของ สมาคมค้าทองคำไทย (GTA) หน้าเว็บนี้อ่านค่าจากประกาศชุดเดียวกับที่สมาคมเผยแพร่ ต่อสาธารณะ แล้วนำมาแสดงแบบเรียลไทม์ ไม่ผ่านตัวกลางหรือ API ของบุคคลที่สาม

ข้อมูลนี้มาถึงหน้าจอได้อย่างไร

  1. 1
    ดึงหน้าเว็บฝั่งเซิร์ฟเวอร์Server-side fetch

    เซิร์ฟเวอร์เรียกหน้าต้นทางด้วย fetch พร้อม User-Agent ของเบราว์เซอร์ทั่วไปและตั้งเวลาหมด 12 วินาที เนื่องจากต้นทางอยู่หลัง Cloudflare ที่บางครั้งตอบ 403 ระบบจึงลองซ้ำได้ถึง 6 ครั้ง เว้นระยะครั้งละ 1.2 วินาที และลองทั้งตัวพิมพ์ใหญ่และพิมพ์เล็กของ URL

  2. 2
    อ่านตารางประกาศระหว่างวันParse the intraday table

    วิธีหลักคืออ่านแถวใหม่สุดของตารางด้วย regex ที่จับเซลล์วันที่-เวลาแบบ DD/MM/YYYY HH:mm แล้วดึงเซลล์ที่เหลือตามลำดับ: เลขครั้งที่, ราคาซื้อ-ขายทองคำแท่ง, ราคาซื้อ-ขายทองรูปพรรณ, ราคาทองโลก, อัตราบาทต่อดอลลาร์ และส่วนต่างที่เปลี่ยน แต่ละตัวเลขผ่านฟังก์ชันแปลงที่คงเครื่องหมายบวก/ลบและตัดคอมมา

  3. 3
    สำรองหลายชั้นLayered fallbacks

    ถ้าตารางอ่านไม่ได้ ระบบจะลองต่อเป็นชั้น ๆ: อ่านค่าจาก span ที่มีรหัสควบคุมคงที่ (lblBLBuy / lblBLSell / lblOMBuy / lblOMSell) ก่อน จากนั้นไล่เซลล์ตารางตามตำแหน่ง และท้ายสุดกวาดจำนวนเงินบาทตามลำดับในเอกสาร ทุกค่าถูกกรองด้วยช่วงราคาที่สมเหตุสมผล (หมื่นถึงแสนบาท) เพื่อไม่ให้หยิบปีหรือตัวเลขอื่นมาผิด

  4. 4
    คำนวณค่าที่เกี่ยวข้องDerived values

    ราคาต่อกรัมคำนวณจากราคาทองคำแท่ง (ทอง 1 บาท = 15.244 กรัม) ราคารับซื้อคืนทองรูปพรรณหัก 5% คำนวณจากราคารับซื้อทองคำแท่ง ส่วนการเปลี่ยนแปลงวันนี้คือผลรวมของทุกประกาศในวันนั้นเทียบกับราคาปิดของเมื่อวาน ทิศขึ้น/ลงยึดตามสัญญาณของสมาคมเป็นหลัก

  5. 5
    อัปเดตแบบเรียลไทม์Live updates

    หน้าเว็บเชื่อมต่อผ่าน WebSocket และรับราคาชุดใหม่ทันทีที่ตรวจพบการเปลี่ยนแปลง เซิร์ฟเวอร์ตรวจต้นทางทุก 10 วินาทีและส่งต่อเฉพาะเมื่อข้อมูลเปลี่ยนจริง หากการเชื่อมต่อสดขาดช่วง หน้าเว็บจะสลับไปดึงข้อมูลเป็นระยะทุก 15 วินาทีโดยอัตโนมัติ

การเก็บและแคชข้อมูล

  1. 1
    แคชในหน่วยความจำIn-memory cache

    ค่าที่ดึงล่าสุดถูกเก็บไว้ในหน่วยความจำของเซิร์ฟเวอร์เพื่อให้การอ่านซ้ำ ๆ เร็วขึ้น และมีตัวกันไม่ให้ยิงไปต้นทางถี่เกินไป โดยจะไม่ดึงใหม่ถ้าเพิ่งดึงไปภายใน 8 วินาทีที่ผ่านมา

  2. 2
    เก็บถาวรบนฐานข้อมูลDurable snapshot

    เนื่องจากการเชื่อมต่อสดถูกผูกกับอินสแตนซ์ชั่วคราวและไม่คงอยู่ข้ามการรีสตาร์ต ค่าประกาศล่าสุดจึงถูกบันทึกลงฐานข้อมูล SQLite (Turso) ในตารางเดียว แล้วอ่านกลับมาแสดงได้ทันทีเมื่อมีผู้เข้าใหม่ ก่อนที่การดึงชุดใหม่จะเสร็จ

  3. 3
    เทียบส่วนต่างข้ามรอบDelta across announcements

    ระบบยังบันทึกประวัติของแต่ละประกาศ (วันที่ + เลขครั้งที่ + ราคาขายทองคำแท่ง) แยกไว้ เพื่อคำนวณส่วนต่างเทียบกับประกาศก่อนหน้าได้อย่างแม่นยำ และคงค่าไว้แม้เซิร์ฟเวอร์จะรีสตาร์ตหรือดีพลอยใหม่

  4. 4
    กันข้อมูลเก่าค้างSchema guard

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

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