Computer >> Hướng Dẫn Máy Tính >  >> Phần Mềm >> Các Trình Duyệt

Khắc phục sự cố tải trang chậm trong Safari

Safari, cùng với hầu hết các trình duyệt khác, hiện bao gồm tính năng DNS prefetching (truy xuất trước DNS), một tính năng được thiết kế để làm cho lướt web nhanh hơn bằng cách xem tất cả các liên kết nhúng trong trang web và truy vấn máy chủ DNS để giải quyết từng liên kết thành địa chỉ IP thực tế.

Khi DNS prefetching hoạt động tốt, khi bạn chọn một liên kết trên trang web, trình duyệt đã biết địa chỉ IP và sẵn sàng tải trang được yêu cầu. Điều này означа là thời gian phản hồi rất nhanh khi bạn di chuyển từ trang này sang trang khác.

Vậy làm sao điều này lại thành vấn đề? Thực tế, DNS prefetching có thể có những nhược điểm thú vị, tuy nhiên chỉ trong điều kiện cụ thể. Mặc dù hầu hết trình duyệt hiện có DNS prefetching, chúng ta sẽ tập trung vào Safari, vì đây là trình duyệt hàng đầu cho Mac.

Khi Safari tải một trang web, đôi khi trang được hiển thị và dường như sẵn sàng để bạn xem nội dung. Nhưng khi bạn thử cuộn lên/xuống trang hoặc di chuyển con trỏ chuột, bạn gặp con trỏ xoay tròn. Bạn có thể nhận thấy biểu tượng làm mới trình duyệt vẫn đang quay. Tất cả điều này cho thấy dù trang đã được hiển thị thành công, có gì đó ngăn cản trình duyệt phản hồi nhu cầu của bạn.

Có một số nguyên nhân có thể. Trang có thể có lỗi, máy chủ trang web có thể chậm, hoặc một phần ngoại tuyến của trang, như dịch vụ quảng cáo bên thứ ba, có thể bị ngừng hoạt động. Những loại vấn đề này thường tạm thời, và có thể biến mất trong thời gian ngắn, từ vài phút đến vài ngày.

Vấn đề DNS prefetching hoạt động hơi khác. Chúng thường ảnh hưởng đến cùng một trang web mỗi khi bạn truy cập nó lần đầu trong phiên duyệt Safari. Bạn có thể truy cập trang vào sáng sớm và thấy nó phản hồi cực kỳ chậm. Quay lại một giờ sau, mọi thứ bình thường. Ngày hôm sau, mẫu lặp lại. Lần truy cập đầu tiên chậm, rất chậm; các lần truy cập tiếp theo trong ngày đều ổn.

Đang xảy ra gì với DNS Prefetching?

Trong ví dụ trên, khi bạn vào trang web đầu tiên vào buổi sáng, Safari nhân cơ hội gửi truy vấn DNS cho mọi liên kết nó thấy trên trang. Tùy thuộc vào trang bạn tải, có thể là vài truy vấn hoặc hàng nghìn, đặc biệt nếu trang web có nhiều bình luận người dùng hoặc bạn đang truy cập diễn đàn.

Vấn đề không phải là Safari gửi hàng loạt truy vấn DNS, mà là một số router mạng gia đình cũ không thể xử lý tải yêu cầu, hoặc hệ thống DNS của ISP quá nhỏ cho yêu cầu, hoặc kết hợp cả hai.

Có hai phương pháp dễ dàng để khắc phục và giải quyết vấn đề hiệu suất DNS prefetching. Chúng ta sẽ hướng dẫn cả hai phương pháp.

Thay đổi nhà cung cấp dịch vụ DNS

Phương pháp đầu tiên là thay đổi nhà cung cấp dịch vụ DNS. Nhiều người dùng bất kỳ cài đặt DNS nào mà ISP yêu cầu, nhưng nói chung, bạn có thể sử dụng bất kỳ nhà cung cấp DNS nào bạn muốn. Theo kinh nghiệm của chúng tôi, dịch vụ DNS của ISP địa phương khá kém. Thay đổi nhà cung cấp là một bước đi tốt cho chúng tôi; có thể cũng tốt cho bạn.

Bạn có thể kiểm tra nhà cung cấp DNS hiện tại bằng hướng dẫn trực tuyến.

Nếu sau khi kiểm tra DNS bạn quyết định thay đổi sang nhà cung cấp khác, câu hỏi rõ ràng là: dùng cái nào? Bạn có thể thử OpenDNS hoặc Google Public DNS, hai nhà cung cấp DNS miễn phí phổ biến, nhưng nếu bạn không ngại điều chỉnh một chút, bạn có thể dùng hướng dẫn để kiểm tra nhiều nhà cung cấp DNS khác nhau xem cái nào tốt nhất cho bạn.

Một khi đã chọn nhà cung cấp DNS, bạn có thể thay đổi cài đặt DNS trên Mac.

Sau khi đã thay đổi sang nhà cung cấp DNS khác, thoát Safari. Khởi chạy lại Safari và thử trang web gây ra vấn đề lặp đi lặp lại.

Nếu trang tải ổn định bây giờ và Safari vẫn phản hồi tốt, bạn đã xong; vấn đề nằm ở nhà cung cấp DNS. Để chắc chắn hơn, thử tải lại cùng trang web sau khi tắt và khởi động lại Mac. Nếu mọi thứ vẫn hoạt động, bạn đã hoàn tất.

Nếu không, vấn đề có thể ở nơi khác. Bạn có thể quay lại cài đặt DNS trước đó, hoặc giữ nguyên cái mới, đặc biệt nếu bạn đã chuyển sang một trong các nhà cung cấp DNS chúng tôi đề xuất; cả hai đều hoạt động rất tốt.

Vô hiệu hóa DNS Prefetch của Safari

Nếu bạn vẫn gặp sự cố, bạn có thể giải quyết bằng cách không bao giờ truy cập trang web đó nữa, hoặc bằng cách vô hiệu hóa DNS prefetching.

Sẽ tốt nếu DNS prefetching là một cài đặt tùy chọn trong Safari. Sẽ tốt hơn nếu bạn có thể vô hiệu hóa prefetching theo từng trang web. Nhưng vì không có tùy chọn nào trong số này hiện có sẵn, chúng ta phải dùng cách khác để vô hiệu hóa tính năng.

  1. Khởi chạy Terminal, nằm ở /Applications/Utilities.

  2. Trong cửa sổ Terminal mở ra, nhập hoặc sao chép/dán lệnh sau:

    defaults write com.apple.safari WebKitDNSPrefetchingEnabled -boolean false
  3. Nhấn Enter hoặc Return.

  4. Sau đó bạn có thể thoát Terminal.

Thoát và khởi chạy lại Safari, sau đó truy cập lại trang web gây ra sự cố. Nó nên hoạt động tốt bây giờ. Vấn đề có thể là do router cũ hơn trong mạng gia đình của bạn. Nếu bạn thay thế router mai này, hoặc nhà sản xuất router cung cấp bản cập nhật firmware giải quyết vấn đề, bạn sẽ muốn bật lại DNS prefetching. Cách làm như sau:

  1. Khởi chạy Terminal.

  2. Trong cửa sổ Terminal, nhập lệnh sau:

    defaults write com.apple.safari WebKitDNSPrefetchingEnabled
  3. Nhấn Enter hoặc Return.

  4. Sau đó bạn có thể thoát Terminal.

Đó là xong; bạn nên đã ổn định. Về lâu dài, bạn thường tốt hơn với DNS prefetching được bật. Nhưng nếu bạn thường xuyên truy cập trang web gặp sự cố, tắt DNS prefetching có thể làm cho việc truy cập hàng ngày dễ chịu hơn.