บทความ / หัวข้อ GAS

ทำหน้าเว็บสวยและเร็วใน Google Apps Script ด้วย HtmlService

อัปเดต 5 ตุลาคม 2026

หน้าเว็บของ Apps Script ไม่จำเป็นต้องหน้าตาเรียบ ๆ ด้วยเทคนิคแยกไฟล์และใช้ CSS framework ทำให้ได้เว็บแอปที่ สวย ใช้บนมือถือได้ดี และดูแลโค้ดง่าย

ระบบพร้อมใช้ที่เกี่ยวข้อง

แยกไฟล์ด้วยฟังก์ชัน include

function doGet() {
  return HtmlService.createTemplateFromFile('index').evaluate()
    .setTitle('ระบบของฉัน')
    .addMetaTag('viewport', 'width=device-width, initial-scale=1');
}

function include(name) {
  return HtmlService.createHtmlOutputFromFile(name).getContent();
}

ใน index.html

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
    <?!= include('styles'); ?>
  </head>
  <body>
    <div id="app"></div>
    <?!= include('script'); ?>
  </body>
</html>

เรียกฟังก์ชันฝั่งเซิร์ฟเวอร์

google.script.run
  .withSuccessHandler(list => render(list))
  .withFailureHandler(err => showError(err.message))
  .getProducts();

google.script.run เป็นแบบ asynchronous เสมอ ควรแสดงสถานะ "กำลังโหลด" ระหว่างรอ

เทคนิคให้เร็วขึ้น

  • โหลดข้อมูลเริ่มต้นผ่าน template (<?= JSON.stringify(data) ?>) แทนการเรียก google.script.run หลังหน้าโหลด
  • รวมคำขอหลายอย่างเป็นฟังก์ชันเดียว ลดจำนวนรอบที่เรียกเซิร์ฟเวอร์
  • ใช้ CacheService แคชข้อมูลที่ไม่ค่อยเปลี่ยน
  • ใส่ <base target="_top"> เพื่อให้ลิงก์เปิดนอก iframe ของ Google

คำถามที่พบบ่อย: ทำหน้าเว็บสวยใน Apps Script

ได้ ใส่ลิงก์ CDN ในไฟล์ HTML ได้ตามปกติ หรือคัดลอก CSS ที่ build แล้วมาไว้ในไฟล์ styles.html

ต้องเพิ่ม addMetaTag("viewport", "width=device-width, initial-scale=1") ที่ฝั่ง doGet เพราะแท็ก viewport ในไฟล์ HTML จะไม่มีผล

ได้ โดย build เป็นไฟล์ JS/CSS ไฟล์เดียวแล้วฝังลงใน HTML หรือโหลดจาก CDN

ระบบอื่นที่น่าสนใจ

POS ร้านขายยา
แนะนำ
ดูรายละเอียด
POS ร้านค้าปลีก-ส่ง v1.0.0

POS ร้านขายยา

จ่ายยาถูกคน ถูกล็อต ไม่มียาหมดอายุค้างชั้น · ชื่อสามัญ ประเภทยา เภสัชกรยืนยัน เตือนแพ้ยา ล็อต FEFO ฉลากยา บัญชีขายยาอันตราย · บน Google Sheets ของร้านเอง ไม่มีค่ารายเดือน

฿2,490.00
0
POS ร้านอาหาร (โต๊ะ ครัว QR สั่งอาหาร)
แนะนำ
ดูรายละเอียด
POS ร้านอาหาร & เครื่องดื่ม v2.0.0

POS ร้านอาหาร (โต๊ะ ครัว QR สั่งอาหาร)

ผังโต๊ะสด · ลูกค้าสแกน QR สั่งอาหารที่โต๊ะ · จอครัว · แจ้งเตือนเรียกพนักงาน · ค่าบริการ · เมนูหมดอัตโนมัติ + แจ้งวัตถุดิบหมดทาง LINE/อีเมล · ไม่มีค่ารายเดือน

฿2,990.00
0