Safety พร้อมกับเบราว์เซอร์เกือบทุกรุ่น ตอนนี้รวมคุณสมบัติ DNS prefetching ซึ่งเป็นฟีเจอร์ที่ออกแบบมาเพื่อทำให้การเล่นเว็บเร็วขึ้น โดยดูที่ลิงก์ทั้งหมดที่ฝังอยู่ในหน้าเว็บ และส่งคำขอไปยัง DNS server เพื่อแปลงลิงก์แต่ละอันเป็นที่อยู่ IP จริง
เมื่อ DNS prefetching ทำงานได้ดี จนกระทั่งคุณเลือกลิงก์บนเว็บไซต์ เบราว์เซอร์จะรู้ที่อยู่ IP แล้ว และพร้อมโหลดหน้าที่ร้องขอ ทำให้เวลาตอบสนองเร็วมากขณะเคลื่อนที่จากหน้าไปหน้า
แต่ทำไมสิ่งนี้ถึงเป็นเรื่องไม่ดี? 原因คือ DNS prefetching อาจมีข้อบกพร่องบางประการ แต่เฉพาะภายใต้เงื่อนไขเฉพาะ แม้เบราว์เซอร์ส่วนใหญ่จะมี DNS prefetching แต่เราจะเน้นที่ Safari เนื่องจากเป็นเบราว์เซอร์หลักของ Mac
เมื่อ Safari โหลดเว็บไซต์ บางครั้งหน้าจะแสดงผลและพร้อมอ่านเนื้อหาแล้ว แต่เมื่อพยายามเลื่อนขึ้นลง หรือเลื่อนเมาส์ จะได้เคอร์เซอร์หมุน รวมถึงไอคอนรีเฟรชของเบราว์เซอร์ยังหมุนอยู่ แสดงว่าหน้าแสดงผลสำเร็จแล้ว แต่มีบางอย่างป้องกันไม่ให้เบราว์เซอร์ตอบสนองความต้องการของคุณ
มีสาเหตุที่เป็นไปได้หลายอย่าง หน้าอาจมีข้อผิดพลาด เซิร์ฟเวอร์เว็บไซต์อาจช้า หรือส่วนที่อยู่นอกเว็บไซต์ เช่น บริการโฆษณาแบบทริสด์พาร์ตี้ อาจล้มลง ปัญหาเหล่านี้มักเป็นชั่วคราว และอาจหายไปในเวลาสั้นๆ ตั้งแต่ไม่กี่นาทีถึงไม่กี่วัน
ปัญหา DNS prefetching ทำงานต่างออกไป มักส่งผลต่อเว็บไซต์เดียวกันทุกครั้งที่เข้าเยี่ยมชมครั้งแรกในเซสชันเบราว์เซอร์ Safari คุณอาจเข้าเว็บตอนเช้าและพบว่าตอบสนองช้ามาก กลับมาอีกชั่วโมงหนึ่ง ทุกอย่างปกติ วันถัดไป รูปแบบเดิมซ้ำ ครั้งแรกช้ามาก การเยี่ยมชมครั้งต่อๆ ไปในวันนั้นก็ปกติ
เกิดอะไรขึ้นกับ DNS Prefetching?
ในตัวอย่างข้างต้น เมื่อคุณเข้าเว็บไซต์ตอนเช้า Safari จะส่งคำขอ DNS สำหรับทุกลิงก์ที่เห็นบนหน้า ขึ้นอยู่กับหน้าที่โหลด อาจเป็นไม่กี่คำขอ หรือหลายพันคำขอ โดยเฉพาะเว็บไซต์ที่มีความคิดเห็นผู้ใช้เยอะ หรือฟอรัมประเภทต่างๆ
ปัญหาไม่ได้มาจาก Safari ส่งคำขอ DNS มากเกินไป แต่เป็นที่บางเราเตอร์บ้านรุ่นเก่า ไม่รับภาระคำขอได้ หรือระบบ DNS ของ ISP เล็กเกินไปสำหรับคำขอ หรือทั้งสองอย่างรวมกัน
มี 2 วิธีง่ายในการแก้ไขและแก้ปัญหาประสิทธิภาพ DNS prefetching เราจะแนะนำทั้งสองวิธี
เปลี่ยนผู้ให้บริการ DNS
วิธีแรกคือเปลี่ยนผู้ให้บริการ DNS หลายคนใช้การตั้งค่า DNS ที่ ISP แนะนำ แต่โดยทั่วไปคุณสามารถใช้ผู้ให้บริการ DNS ใดก็ได้ จากประสบการณ์ของเรา DNS ของ ISP ท้องถิ่นไม่ค่อยดี การเปลี่ยนผู้ให้บริการเป็นการตัดสินใจที่ดี อาจเหมาะกับคุณเช่นกัน
คุณสามารถทดสอบผู้ให้บริการ DNS ปัจจุบันได้จากคำแนะนำในคู่มือออนไลน์
หากหลังตรวจสอบแล้วตัดสินใจเปลี่ยน คำถามคือควรใช้ตัวไหน? ลอง OpenDNS หรือ Google Public DNS สองผู้ให้บริการยอดนิยมและฟรี แต่หากไม่แคร์การปรับแต่งเล็กน้อย สามารถใช้คู่มือทดสอบผู้ให้บริการ DNS ต่างๆ เพื่อดูว่าตัวไหนดีที่สุดสำหรับคุณ
เมื่อเลือกผู้ให้บริการ DNS แล้ว ให้เปลี่ยนการตั้งค่า DNS ของ Mac
หลังเปลี่ยนผู้ให้บริการ DNS ให้ปิด Safari แล้วเปิดใหม่ และลองเข้เว็บไซต์ที่ก่อให้เกิดปัญหาเดิม
ถ้าเว็บโหลดปกติ และ Safari ตอบสนองได้ดี แสดงว่าเสร็จแล้ว ปัญหาอยู่ที่ DNS provider เพื่อแน่ใจ ให้ลองโหลดเว็บเดียวกันอีกครั้งหลังปิดและรีสตาร์ท Mac ถ้ายังทำงานได้ คุณเสร็จสิ้นแล้ว
ถ้าไม่ได้ ปัญหาอาจอยู่ที่อื่น คุณสามารถกลับไปใช้การตั้งค่า DNS เดิม หรือคงค่าใหม่ไว้ก็ได้ โดยเฉพาะหากเปลี่ยนไปใช้ผู้ให้บริการที่เราแนะนำข้างต้น ทั้งคู่ทำงานได้ดีมาก
ปิด DNS Prefetch ของ Safari
หากยังมีปัญหา สามารถแก้ได้โดยไม่เข้าเว็บไซต์นั้นอีก หรือปิด DNS prefetching
จะดีกว่าถ้า DNS prefetching เป็นการตั้งค่าใน Safari จะดีกว่านั้นถ้าสามารถปิด prefetching แบบเว็บไซต์ต่อเว็บไซต์ได้ แต่เนื่องจากไม่มีตัวเลือกเหล่านี้ จึงต้องใช้วิธีอื่นในการปิดฟีเจอร์นี้
- เปิด Terminal ที่ /Applications/Utilities
- ในหน้าต่าง Terminal ที่เปิดขึ้น ให้ใส่หรือคัดลอก/วางคำสั่งต่อไปนี้:
defaults write com.apple.safari WebKitDNSPrefetchingEnabled -boolean false
- กด Enter หรือ Return
- จากนั้นปิด Terminal
ปิดและเปิด Safari ใหม่ แล้วเข้าเว็บไซต์ที่ก่อให้เกิดปัญหาใหม่ ควรทำงานได้ปกติแล้ว ปัญหาอาจมาจากเราเตอร์เก่าในเครือข่ายบ้าน หากคุณเปลี่ยนเราเตอร์ในอนาคต หรือผู้ผลิตเราเตอร์เสนออัปเกรดเฟิร์มแวร์ที่แก้ปัญหา คุณจะต้องเปิด DNS prefetching กลับมา วิธีทำดังนี้:
- เปิด Terminal
- ในหน้าต่าง Terminal ให้ใส่คำสั่งต่อไปนี้:
defaults write com.apple.safari WebKitDNSPrefetchingEnabled
- กด Enter หรือ Return
- จากนั้นปิด Terminal
เพียงเท่านี้ คุณควรพร้อมใช้งานแล้ว ในระยะยาว การเปิด DNS prefetching ไว้มักดีกว่า แต่หากคุณเข้าเว็บไซต์ที่มีปัญหาบ่อย การปิด DNS prefetching จะทำให้การเข้าเยี่ยมชมทุกวันสนุกสนานขึ้น