cover

Partytown: Elevating Page Speed by Loading Third-Party Scripts with Web Workers

เพิ่มประสิทธิภาพของเว็บไซต์ด้วยการโหลด Third-Party Scripts ผ่าน Web Worker.

Updated On January 01, 2024 by Adisak Chaiyakul

ทุกคนต่างต้องการเว็บไซต์ที่มีประสิทธิภาพสูงใช่ไหมครับ? เพราะไม่เพียงแต่มันส่งผลต่อประสบการณ์ของผู้ใช้เท่านั้น แต่ยังมีผลต่อการจัดอันดับ SEO อีกด้วย การที่เว็บไซต์ของคุณมีประสิทธิภาพที่เหนือกว่าคู่แข่ง ไม่เพียงแต่จะเพิ่มโอกาสในการติดอันดับสูงใน Google เท่านั้น แต่ยังช่วยสร้างความประทับใจและความไว้วางใจกับผู้ใช้ของคุณด้วย

หนึ่งวิธีในการช่วยเพิ่มประสิทธิภาพของเว็บไซด์คือการลดจำนวนการใช้ thrid-party ลง แต่บาง Script มันไม่สามารถเอาออกได้จริงๆ ยิ่งในเว็บไซด์ใหญ่ๆ ที่มีทั้ง Team Marketing อาจจะต้องมีการใช้ Thrid-party หลายตัวเช่น Hotja, Google Analytics, intercom, Pixel, ETC. แล้วเราจะมีวิธีการแก้ปัญหานี้ยังไง

แนะนำ Partytown?

Partytown วิธีหนึ่งที่จะช่วยแก้ปัญหานี้ได้ นั่นคือการโหลด Script ด้วยการใช้ Web Worker ทำให้ Thrid-party Script ไม่ไปแย่งการทำงานจาก Main thread

ไอเดียมันก็นะแต่ถ้าต้องมาเขียนเองคงน่าจะปวดหัวน่าดู แต่เมื่อไม่นานผมได้รู้จักกับ Partytown จากวีดีโอของฝรั่งใน Youtube แล้วก็โอ้วมันว้าวนะ และที่ยิ่งว้าวไปกว่านั้นคือ Next.js ได้ทำให้ Script Support partytown(Experimental) ได้เลย

Web Worker คืออะไร

Web Worker เป็นฟีเจอร์ใน JavaScript ที่อนุญาตให้สคริปต์ทำงานแบบพร้อมเพรียงกัน ช่วยให้หน้าเว็บทำงานได้โดยไม่ต้องรอให้สคริปต์ทั้งหมดทำงานเสร็จ ซึ่งช่วยลดการหน่วงและการสะดุดในการเลื่อนหรือป้อนข้อมูล ด้วย Web Worker, JavaScript สามารถประมวลผลแบบอิสระจากหน้าเว็บหลัก ทำให้ผู้พัฒนาสามารถสร้างหน้าเว็บที่มีความซับซ้อนและคุณสมบัติมากมายได้โดยไม่ทำให้เครื่องผู้ใช้ช้าลงหรือสะดุด.

ลองใช้จริง

เรามาดูคะแนนจาก Page Speed ก่อนที่เราจะลองใช้ Partytown ก่อนนะครับ

วิธีใช้สามารถอ่านได้จาก Script Optimization

1. edit next.config.js

2. install partytown

npm install @builder.io/partytown

3. เปิดใช้งาน strategy=”worker”

เท่านี้ก็เรียบร้อยแล้ว ต่อไปเรามาลองดูผลลัพธ์กัน

ผลลัพธ์

จากผลลัพธ์ที่ได้จะเห็นได้ว่า Page Speed score เพิ่มขึ้นมาได้เยอะเลยทีเดียว ในเว็บตัวอย่างผมมี Script แค่อันเดียวลองจิตนาการถึงเว็บไซด์ใหญ่ๆที่ใช้ Thrid-party Script เยอะๆ มันจะมีผลอย่างมากๆ

สรุป…

การใช้ Web Worker ในการโหลด Script เป็นอะไรที่น่าสนใจมาก น่าสนใจว่าใน Next.js Version ถัดไป feature นี้จะถูก release เป็น feature หลักหรือยัง เดียวไว้ผมจะมาเล่าให้ฟังอีกรอบหลังใช้จริงไปหลายเดือนแล้วว่าเป็นยังไงบ้างละกันนะครับ โอเค ไปนอนก่อนละ บายย

cover

Craft by

Adisak Chaiyakul

Developer ที่ชอบปั่นจักรยาน รักในเสียงดนตรี และการท่องเที่ยวธรรมชาติ มีความพยายามที่จะหา solution สำหรับ SME และคนตัวเล็กที่จะเอาชนะความเหลื่อมล้ำทางโอกาศด้วยเทคโนโลยี สนใจและเสพเนื้อหาแทบทุกเรื่องแต่สื่อสารไม่ได้เก่ง แต่กำลังพัฒนาตัวเองอยู่นะ

profile pictureLet's work
together

Avaliable for new project on 15 jan 2024.

Help me get to know you.


My Message

Hello, dear customers and friends! Welcome to my website, a testing ground for the latest technologies I've mastered, ensuring they're perfected before implementation. My commitment is to deliver the best in Ecommerce, Headless CMS, Design, Motion Design, SEO, and Payment Solutions. Together, let's explore the forefront of digital innovation!


facebook iconfacebook iconfacebook iconfacebook icon

Copyright 2023. Designed and built by Adisak Chaiyakul with Wordpress + Next.js (HEADLESS CMS)