뚠뚠멍의 생각들

เกี่ยวกับการโหลดทรัพยากรของเบราว์เซอร์

สร้าง: 2024-10-01

สร้าง: 2024-10-01 00:31

โดยทั่วไปแล้ว เบราว์เซอร์จะเรนเดอร์ตามลำดับต่อไปนี้

- การแยกวิเคราะห์ HTML (จากบนลงล่าง head -> body) :

1. การแยกวิเคราะห์ HTML และการสร้าง DOM
2. การโหลดและการใช้ CSS (การบล็อกการเรนเดอร์)
3. การโหลดและการรันสคริปต์ (การบล็อกการเรนเดอร์)

4. การเรนเดอร์เนื้อหาของส่วน <body> (รูปภาพ ข้อความ ฯลฯ)


การควบคุมลำดับความสำคัญของทรัพยากรของเบราว์เซอร์สามารถเพิ่มประสิทธิภาพความเร็วในการโหลดหน้าเว็บได้


ฉันต้องการบันทึกแอตทริบิวต์หลักต่อไปนี้ที่สามารถปรับปรุงลำดับการเรนเดอร์ด้านล่างได้

- JavaScript: async, defer, module
- CSS: preload, media
- รูปภาพ: loading="lazy", srcset, sizes
- อื่นๆ: prefetch, preconnect, dns-prefetch


JavaScript

async : ดาวน์โหลดแบบขนานกับการแยกวิเคราะห์ HTML และรันทันทีหลังจากดาวน์โหลดเสร็จสมบูรณ์ หากทรัพยากรใดๆ บนหน้าเว็บเกี่ยวข้องกับ js นี้ ควรลบแอตทริบิวต์ async


defer : ดาวน์โหลดแบบขนานกับการแยกวิเคราะห์ HTML และรันหลังจากการแยกวิเคราะห์ HTML เสร็จสมบูรณ์ = ลำดับได้รับการรับประกัน หากต้องการรันหลังจากที่ HTML ทั้งหมดเรนเดอร์แล้ว ควรเพิ่มแอตทริบิวต์ defer


โดยทั่วไปแล้ว เบราว์เซอร์จะโหลด HTML ก่อน หากมีแหล่งที่มาของสคริปต์ในแท็ก head การเรนเดอร์จะถูกบล็อก การเพิ่มแท็กทั้งสองข้างต้นสามารถป้องกันการบล็อกการเรนเดอร์ HTML ได้



CSS

styleshee : ค่าเริ่มต้น เป็นองค์ประกอบที่บล็อกการเรนเดอร์ ใช้เมื่อจำเป็นต้องโหลด CSS

preload : ดาวน์โหลดล่วงหน้าโดยไม่บล็อกการเรนเดอร์ จะเปลี่ยนเป็น stylesheet เมื่อเกิดเหตุการณ์ onload และใช้สไตล์

media: เรนเดอร์เมื่อตรงตามเงื่อนไขขนาดหน้าจอ


รูปภาพ

loading="lazy" : โหลดรูปภาพเมื่อปรากฏบนหน้าจอ (เมื่อตำแหน่งการเลื่อนอยู่ใกล้กับองค์ประกอบที่มีรูปภาพ)

srcset : เลือกรูปภาพที่ดีที่สุดตามขนาดหน้าจอ (การเพิ่มประสิทธิภาพขนาดรูปภาพ)

sizes : ให้คำแนะนำแก่เบราว์เซอร์ในการเลือกรูปภาพที่เหมาะสมตามขนาดของวิวพอร์ต


ในกรณีของแท็ก img ตัวสุดท้าย เมื่อมีรูปภาพที่มีความกว้าง 480px และ 1024px แอตทริบิวต์ size จะทำให้แสดงรูปภาพขนาด 480px เมื่อ max-width เป็น 600px และแสดงรูปภาพขนาด 1024px ในกรณีอื่นๆ


* ในอีคอมเมิร์ซ เนื่องจากมีรูปภาพหลายสิบรูปในหน้าเดียว การลดขนาดของรูปภาพจึงมีประสิทธิภาพมาก

ตัวอย่างเช่น ในหน้าผลลัพธ์การค้นหาจะมีรูปภาพอย่างน้อย 20 รูปขึ้นไป และการค้นหาจะดำเนินการ 100,000 ครั้งต่อวัน...


อื่นๆ

rel="prefetch": ดาวน์โหลดทรัพยากรล่วงหน้าก่อนที่จะเปลี่ยนไปยังหน้าอื่นเพื่อปรับปรุงความเร็วในการโหลดของหน้าถัดไป

rel="preconnect": ตั้งค่าการเชื่อมต่อเครือข่ายล่วงหน้าสำหรับลิงก์เฉพาะ (วิดีโอขนาดใหญ่ แบบอักษร ฯลฯ)

rel="dns-prefetch": ค้นหา DNS ของทรัพยากรภายนอกเพื่อโหลดทรัพยากรได้เร็วขึ้น (ส่วนใหญ่คือ CDN ภายนอก)


* preconnect กับ dns-prefetch

preconnect คือการเชื่อมต่อ TCP (DNS - การยืนยัน TCP - การยืนยัน TLS) ดังนั้นจึงเป็นการทำงานที่หนักซึ่งใช้ทรัพยากรของเบราว์เซอร์ ใช้เมื่อต้องโหลดทรัพยากรภายนอกอย่างรวดเร็ว (เมื่อทรัพยากรมีความสำคัญมากและการเรนเดอร์ที่รวดเร็วมีความสำคัญ)

dns-prefetch เป็นเพียงการค้นหา DNS เท่านั้น ดังนั้นจึงเป็นการทำงานที่เบากว่า เหมาะสำหรับทรัพยากรที่ไม่สำคัญและจะโหลดในภายหลัง






ความคิดเห็น0

เพิ่มประสิทธิภาพ SEO ด้วย AMP: สร้างหน้าเว็บมือถือที่โหลดเร็วเรียนรู้วิธีใช้ Google AMP เพื่อเพิ่มความเร็วในการโหลดหน้าเว็บมือถือและเพิ่มประสิทธิภาพ SEO ให้สูงสุด ช่วยยกระดับประสบการณ์ผู้ใช้และการปรับแต่งให้เหมาะกับเครื่องมือค้นหา
꿈많은청년들
꿈많은청년들
꿈많은청년들
꿈많은청년들

June 18, 2024

การใช้ Google Cloud Storage และ Cloud Run เพื่อใช้งาน CDN - 2บทความที่สองเกี่ยวกับวิธีการสร้าง CDN โดยใช้ Google Cloud Storage และ Cloud Run อธิบายวิธีการส่งภาพและไฟล์ข้อความที่ได้รับการปรับให้เหมาะสมที่สุด รวมถึงการกระจายทรัพยากรไปยัง 8 ภูมิภาคทั่วโลกเพื่อลดเวลาแฝง
두루미스 기술 블로그
두루미스 기술 블로그
두루미스 기술 블로그
두루미스 기술 블로그

September 6, 2024

การเพิ่มประสิทธิภาพ SEO สำหรับมือถือ: สร้างเว็บไซต์ที่ใช้งานง่ายบนมือถือคู่มือการเพิ่มประสิทธิภาพ SEO สำหรับมือถือ ครอบคลุมการออกแบบเว็บไซต์ที่ตอบสนองต่ออุปกรณ์ต่างๆ ความเร็วในการโหลดหน้าเว็บที่รวดเร็ว การนำทางที่ง่ายดาย การออกแบบที่ใช้งานง่ายบนหน้าจอสัมผัส เนื้อหาที่ปรับให้เหมาะกับมือถือ การใช้ Google AMP และ Google Search C
꿈많은청년들
꿈많은청년들
꿈많은청년들
꿈많은청년들

June 10, 2024

SEO คืออะไร ในแง่ของ On-Page SEO?On-Page SEO คือกลยุทธ์การเพิ่มประสิทธิภาพองค์ประกอบภายในเว็บไซต์ (หัวข้อ เนื้อหา รูปภาพ เมตาแท็ก ฯลฯ) เพื่อยกระดับอันดับการค้นหาใน search engine คุณภาพของเนื้อหา การใช้คำหลัก เมตาแท็ก การเพิ่มประสิทธิภาพรูปภาพ โครงสร้างการเชื่อมโยงภายใน และการปรับปรุงประ
꿈많은청년들
꿈많은청년들
꿈많은청년들
꿈많은청년들

May 28, 2024

[7 วัน] สร้างเกมสนุกๆ กับ AIนี่คือวันที่ 7 ของการพัฒนาเว็บเกมที่ใช้ AI ช่วยเหลือโดยอิงจาก D&D5e เราประสบความสำเร็จในการปรับปรุงประสิทธิภาพด้วยการแยกเลเยอร์ของแคนวาสและการเปลี่ยนวิธีการ ESM รวมถึงการใช้งานระบบปฏิสัมพันธ์กับสิ่งปลูกสร้างและเอฟเฟกต์การต่อสู้ ตรวจสอบได้ที่ ggoban.com/d2
꼬반
꼬반
꼬반
꼬반

November 13, 2024

คู่มือฉบับสมบูรณ์สำหรับคุณสมบัติ CSS object-fitเรียนรู้วิธีปรับขนาดและแสดงภาพเว็บอย่างมีประสิทธิภาพโดยใช้คุณสมบัติ CSS object-fit ค้นพบตัวเลือกต่างๆ เช่น การรักษาอัตราส่วนภาพ การตัด และการเติม
Meursyphus
Meursyphus
Meursyphus
Meursyphus

July 14, 2024