จากประสบการณ์ทางเว็บเรามักจะพบกับสถานการณ์นี้นั่นคือเมื่อโทรไปที่ Baidu Alliance, Google Alliance และไฟล์ชื่อโดเมนนอกชื่อโดเมนที่หน้าเว็บปัจจุบันตั้งอยู่เราจะพบกับความล่าช้าของคำขอที่ร้ายแรงมาก ดังนั้นมีวิธีแก้ปรากฏการณ์นี้มีความล่าช้าในการร้องขออย่างรุนแรงหรือไม่? DNS prefetch คืออะไร
DNS ใช้การแมปชื่อกับ IP การเข้าถึงเว็บไซต์ผ่านชื่อโดเมนต้องใช้ความละเอียด DNS สำหรับทุกคำขอ ปัจจุบันความละเอียด DNS แต่ละครั้งมักจะต่ำกว่า 200ms ในการตอบสนองต่อปัญหาที่ใช้เวลานานของความละเอียด DNS เบราว์เซอร์บางตัวใช้ DNS prefetch เพื่อปรับปรุงความคล่องแคล่วในการเข้าถึง
DNS prefetch เป็นเทคโนโลยีการแก้ปัญหาก่อน DNS เมื่อเรียกดูหน้าเว็บเบราว์เซอร์จะแก้ไขและแคชชื่อโดเมนในหน้าเว็บเมื่อโหลดหน้าเว็บ ด้วยวิธีนี้เมื่อคลิกการเชื่อมต่อในหน้าเว็บปัจจุบันไม่จำเป็นต้องแก้ไข DNS ลดเวลารอผู้ใช้และปรับปรุงประสบการณ์ผู้ใช้
ปัจจุบันเบราว์เซอร์ที่รองรับ DNS prefetch รวมถึง Google Chrome และ Firefox 3.5
หากคุณต้องการแยกวิเคราะห์ชื่อโดเมนเฉพาะทางด้านเบราว์เซอร์คุณสามารถเพิ่มแท็กลิงค์ไปยังหน้าเพื่อใช้งานได้ ตัวอย่างเช่น:
<link rel = dns-prefetch href = http: //img.vevb.com/>
หากคุณต้องการควบคุมว่าด้านข้างของเบราว์เซอร์จะได้รับการแก้ไขชื่อโดเมนหรือไม่คุณสามารถควบคุมได้ผ่านแอตทริบิวต์ X-DNS-Prefetch-Control ของส่วนหัว HTTP
น่าเสียดายที่ Google Chrome และ Firefox3.5 เท่านั้นที่รองรับแท็กด้านบน
โดยทั่วไปแล้วเหตุผลสำหรับความล่าช้านี้ไม่ใช่แบนด์วิดท์หรือโหลดของเว็บไซต์ของอีกฝ่ายดังนั้นสิ่งที่ทำให้สถานการณ์นี้เป็นสิ่งที่แน่นอน Zalan พยายามคาดเดาโดยสมมติว่ามันเป็นปัญหากับ DNS เนื่องจากความเร็วความละเอียด DNS น่าจะเป็นสาเหตุที่ยิ่งใหญ่ที่สุดของการหน่วงเวลาของทรัพยากร ดังนั้น Zaolan จึงเพิ่มรหัสต่อไปนี้ลงในส่วนหัวของหน้า (ใช้เป็น DNS pre-parser):
<meta http-equiv = x-dns-prefetch-control Content = on />
<link rel = dns-prefetch href = http: //bdimg.share.baidu.com/>
<link rel = dns-prefetch href = http: //nsclick.baidu.com/>
<link rel = dns-prefetch href = http: //hm.baidu.com/>
<link rel = dns-prefetch href = http: //eiv.baidu.com/>
<link rel = dns-prefetch href = http: //img.vevb.com/>
เอฟเฟกต์นั้นดีมาก (เบราว์เซอร์ทดสอบคือ IE8) และการโหลดปุ่มแชร์ Baidu นั้นดีขึ้นอย่างมากเมื่อเปิดหน้าอื่น ๆ !
มาเรียนรู้สั้น ๆ เกี่ยวกับ DNS-Prefetch:
ในฐานะที่เป็นโปรโตคอลพื้นฐานของอินเทอร์เน็ตดูเหมือนว่า DNS จะถูกมองข้ามอย่างง่ายดายโดยเจ้าหน้าที่เพิ่มประสิทธิภาพเว็บไซต์ ตอนนี้เบราว์เซอร์ใหม่ส่วนใหญ่ได้รับการปรับให้เหมาะสมสำหรับความละเอียด DNS ความละเอียด DNS ทั่วไปใช้เวลา 20-120 มิลลิวินาที การลดเวลาและจำนวนความละเอียด DNS เป็นวิธีที่ดีในการปรับให้เหมาะสม DNS prefetching เป็นชื่อโดเมนที่มีแอตทริบิวต์นี้ซึ่งไม่ต้องการให้ผู้ใช้คลิกที่ลิงค์เพื่อแก้ไขในพื้นหลัง การแก้ไขชื่อโดเมนและการโหลดเนื้อหาเป็นการดำเนินการเครือข่ายอนุกรมดังนั้นวิธีนี้สามารถลดเวลารอคอยของผู้ใช้และปรับปรุงประสบการณ์ผู้ใช้
ชื่อโดเมนแรกของเบราว์เซอร์ความละเอียด DNS และกระบวนการค้นหาสำหรับเว็บไซต์คือ:
เบราว์เซอร์แคช-ระบบแคช-เราเตอร์แคช-ISP DNS Cache-recursive Search Search
ชื่อโดเมนกระบวนการค้นหาความละเอียด DNS
Chrome มีเทคโนโลยีการดึงข้อมูลล่วงหน้า DNS ในตัวและ Firefox 3.5 ยังแนะนำคุณสมบัตินี้ เนื่องจาก Chrome และ Firefox 3.5 เองได้รับการปรับความละเอียดล่วงหน้า DNS อย่างเหมาะสมดังนั้นหนึ่งในผลข้างเคียงของการตั้งค่า DNS Pre-Resolution คือมันอาจลดประสบการณ์การใช้งานของเบราว์เซอร์ Google Chrome และ Firefox Firefox 3.5
เตรียมการดำเนินการ:
1. ใช้ข้อมูลเมตาเพื่อแจ้งเบราว์เซอร์ว่าหน้าปัจจุบันต้องได้รับการเตรียมล่วงหน้าโดย DNS: <Meta HTTP-Equiv = X-DNS-PREFETCHETCON
2. ใช้แท็กลิงค์ในส่วนหัวของหน้าเพื่อบังคับให้ pre-parse dns: <link rel = dns-prefetch href = http: //bdimg.share.baidu.com/>
หมายเหตุ: ต้องใช้ DNS-Prefetch ด้วยความระมัดระวัง การแก้ไข DNS ก่อนการแก้ไขหลายหน้าจะเพิ่มจำนวนการสืบค้น DNS ซ้ำ
PS: DNS Pre-Resolution ส่วนใหญ่ใช้สำหรับการเพิ่มประสิทธิภาพหน้าส่วนหน้าของเว็บไซต์ บทบาทของมันใน SEO ยังไม่ได้รับการตรวจสอบ แต่เป็นส่วนหนึ่งของการเพิ่มประสบการณ์ผู้ใช้ Rel = DNS-Prefetch อาจคุ้มค่ากับการค้นพบ