ในการพัฒนา Web Application สมัยใหม่ โดยเฉพาะงานที่แยก ฝั่ง Server (Backend) และ ฝั่ง Client (Frontend) ออกจากกัน หนึ่งในโจทย์สำคัญคือ
“จะส่งค่าการตั้งค่า (Config) จาก Server ไปให้ JavaScript ฝั่งหน้าเว็บอย่างเป็นระบบ ปลอดภัย และดูแลรักษาง่ายได้อย่างไร?”
แนวคิด Server → Inject → window.CONFIG เป็นรูปแบบที่นิยมและเหมาะสมอย่างยิ่งกับงานประเภท
- Google Apps Script Web App
- ระบบ CMS / LMS
- เว็บไซต์ที่ใช้ Config จากฐานข้อมูล เช่น Google Sheet
ภาพรวมแนวคิด (Concept Overview)
โฟลว์การทำงานมี 3 ขั้นตอนหลัก
สรุปสั้น ๆ
- Server เป็นผู้กำหนด “ความจริง” (Single Source of Truth)
- HTML เป็นเพียงตัวรับค่า
- JavaScript ฝั่ง Client อ่านค่าจาก
window.CONFIGเพื่อนำไปใช้งาน
ทำไมต้องใช้ window.CONFIG
❌ ปัญหาของวิธีเดิม
- เขียนค่า hardcode ซ้ำใน JS หลายไฟล์
- เปลี่ยนชื่อระบบ / โลโก้ ต้องแก้หลายจุด
- Config ไม่เป็นศูนย์กลาง
- ดูแลยากเมื่อระบบใหญ่ขึ้น
✅ ข้อดีของ window.CONFIG
- รวม Config ทั้งหมดไว้จุดเดียว
- เปลี่ยนค่าที่ Server → หน้าเว็บเปลี่ยนทันที
- ใช้ร่วมกันได้ทุกไฟล์ JS
- อ่านง่าย เป็นมาตรฐาน
ตัวอย่างโครงสร้าง Config จากฐานข้อมูล
สมมุติ Google Sheet ชื่อ Config
| key | value |
|---|---|
| logoUrl | https://example.com/logo.png |
| system_name | LMS |
| system_title | ระบบการจัดการการเรียนรู้ |
| welcome_message | ยินดีต้อนรับ |
| footer_text | © 2026 Learning Management System |
ฝั่ง Server (Google Apps Script)
1. อ่าน Config แล้วแปลงเป็น Object
2. Inject Config เข้า HTML
จุดสำคัญ: Server เป็นผู้ inject ค่า ไม่ใช่ Client ไป fetch เอง
ฝั่ง HTML (Inject → window.CONFIG)
เมื่อโหลดหน้าเว็บเสร็จ จะได้ Object ทันที เช่น
การใช้งานจริงใน JavaScript
ตัวอย่าง: เปลี่ยนโลโก้และชื่อระบบ
ตัวอย่าง: ใช้ในหลายไฟล์ JS
window.CONFIGเป็น global → ใช้ได้ทุกไฟล์
Best Practice ที่แนะนำ
✅ 1. ใช้ชื่อ CONFIG ตัวพิมพ์ใหญ่
สื่อความหมายว่าเป็นค่าคงที่ระดับระบบ
✅ 2. Inject ก่อนโหลด JS หลัก
✅ 3. แยก “Config” ออกจาก “Data”
- Config → ชื่อระบบ, โลโก้, feature flag
- Data → ข้อมูลผู้ใช้, รายการ, ตาราง
❌ ไม่ควรใส่ข้อมูลลับ
เช่น API Key, Token, Secret
เหมาะกับงานประเภทใดบ้าง
✔ ระบบ LMS / E-learning
✔ Web App ด้วย Google Apps Script
✔ CMS โรงเรียน / หน่วยงาน
✔ ระบบที่ต้องปรับค่าโดยไม่แก้โค้ด
✔ เว็บที่ใช้ Google Sheet เป็นฐานข้อมูล
สรุป
แนวคิด Server → inject → window.CONFIG คือรูปแบบที่
- เรียบง่าย
- เป็นมาตรฐาน
- ดูแลรักษาง่าย
- เหมาะกับ Web App ระยะยาว
“ให้ Server เป็นผู้กำหนดค่า
Frontend มีหน้าที่แค่ใช้”
หากคุณกำลังสร้าง Web App ด้วย Google Apps Script แนวคิดนี้คือ ของที่ควรมีตั้งแต่วันแรก 💡
