ฉันเพิ่มประสิทธิภาพความเร็วในการโหลดหน้าเว็บไซต์ หนึ่งในวิธีคือการรวมหลายคำขอ HTTP สำหรับ CSS เป็นหนึ่งคำขอ HTTP รวม แต่ผู้ตรวจสอบคนหนึ่งถามคำถามที่น่าสนใจว่าจะไม่ทำให้การดาวน์โหลดไฟล์ CSS หลาย ๆ ไฟล์ซ้ำซ้อนลดเวลาในการโหลดหน้าเว็บหรือไม่
ฉันไม่เคยพิจารณาตัวเลือกนี้เนื่องจากสิ่งเดียวที่ฉันอ่านบนอินเทอร์เน็ตคือการลดจำนวนคำขอ HTTP (บล็อก) เป็นกุญแจสำคัญในหน้าเว็บที่เร็วขึ้น (แม้ว่า Google Pagespeed Insights จะไม่ได้ระบุ1นี้อย่างชัดเจน)
ฉันเห็นเหตุผลสองสามข้อที่ว่าทำไมการเทียบกันจะไม่ปรับปรุงประสิทธิภาพหรือมีความสำคัญเพียงเล็กน้อย (เทียบกับประโยชน์ของการใช้คำขอ HTTP ที่น้อยลง):
- การตั้งค่าการเชื่อมต่อใหม่นั้นมีราคาแพง ในขณะที่การตั้งค่าการเชื่อมต่อหลายรายการสามารถทำได้ในแบบคู่ขนานเบราว์เซอร์จะใช้การเชื่อมต่อประมาณ 4-6 ครั้ง (ขึ้นอยู่กับเบราว์เซอร์) ดังนั้นการดาวน์โหลด CSS แบบขนานจะเป็นการบล็อกการดาวน์โหลดเนื้อหาอื่น ๆ เช่น JavaScript และรูปภาพ
- การตั้งค่าการเชื่อมต่อ HTTPS จะใช้ข้อมูลพิเศษบางอย่าง ฉันได้อ่านสิ่งนี้อาจเป็นข้อมูลไม่กี่ KB นี่คือข้อมูลพิเศษบางอย่างที่ต้องส่งผ่านสายแทน CSS ที่เราต้องการส่งจริง
- เนื่องจากอัลกอริธึมเริ่มช้าของ TCP ยิ่งมีการส่งข้อมูลผ่านการเชื่อมต่อมากเท่าไหร่การเชื่อมต่อก็จะยิ่งเร็วขึ้นเท่านั้น ดังนั้นการเชื่อมต่อที่มีอายุมากกว่าจะส่งข้อมูลได้เร็วกว่าการเชื่อมต่อใหม่ ดูตัวอย่างโปรโตคอล SPDY ที่ใช้การเชื่อมต่อเดียวเพื่อปรับปรุงเวลาในการโหลดหน้าเว็บ
- TCP เป็นสิ่งที่เป็นนามธรรม: ยังคงมี (การเชื่อมต่อปกติ) เพียงหนึ่งการเชื่อมต่อพื้นฐาน ดังนั้นในขณะที่ใช้หลายคำขอข้อมูลที่ส่งผ่านสายอาจไม่จำเป็นต้องได้รับประโยชน์จากการเชื่อมต่อที่หลากหลายเพื่อปรับปรุงความเร็ว
- การเชื่อมต่ออินเทอร์เน็ตนั้นไม่น่าเชื่อถือโดยเฉพาะบนมือถือ คำขอหนึ่งอาจเสร็จเร็วกว่าคำขออื่นอย่างมาก การใช้หลายคำขอสำหรับ CSS หมายถึงการแสดงผลหน้าเว็บถูกบล็อกจนกว่าคำขอสุดท้ายจะเสร็จซึ่งอาจช้ากว่าการเชื่อมต่อโดยเฉลี่ย
ดังนั้นจะมีประโยชน์ใด ๆ ในการปรับแต่งคำร้องขอ HTTP สำหรับไฟล์ CSS หรือไม่?
หมายเหตุ / อัปเดต: ไฟล์ CSS ทั้งหมดเป็นการปิดกั้นการแสดงผล ไฟล์ CSS ที่ไม่ได้ถูกย้ายไปอยู่นอกเส้นทางที่สำคัญ