解決Safari瀏覽器 - 緩慢的頁面加載

禁用DNS預取可以提高Safari的性能

Safari和幾乎所有其他瀏覽器一樣,現在還包括DNS預取功能,該功能旨在通過查看網頁中嵌入的所有鏈接並查詢DNS服務器以便將每個鏈接解析為實際內容,從而使網上沖浪變得更加快速 IP地址。

當DNS預取工作正常時,當您點擊網站上的鏈接時,您的瀏覽器已經知道IP地址並準備好加載請求的頁面。 這意味著當您逐頁移動時,響應時間非常快。

那麼,這怎麼會是一件壞事呢? 嗯,事實證明,DNS預取可以有一些有趣的缺點,但只在特定的條件下。 雖然大多數瀏覽器現在都有DNS預取, 但我們將專注於Safari ,因為它是Mac的主流瀏覽器。

Safari在加載網站時,有時會呈現網頁並準備好供您閱讀其內容。 但是,當您嘗試向上或向下滾動頁面,或者移動鼠標指針時,您會看到一個旋轉的光標。 您可能會注意到瀏覽器刷新圖標仍在旋轉。 所有這些都表明,當頁面被成功呈現時,某些東西阻止了瀏覽器響應您的需求。

有一些可能的罪魁禍首。 該頁面可能有錯誤,網站服務器速度可能會變慢,或者頁面外的某個部分(如第三方廣告服務)可能停止運行。 這些類型的問題通常是暫時的,並可能在幾分鐘到幾天的短時間內消失。

DNS預取問題的工作方式稍有不同。 當您在Safari瀏覽器會話中第一次訪問它們時,它們通常會影響同一網站。 您可能在清晨訪問該網站,發現響應速度非常緩慢。 一個小時後回來,一切都很好。 第二天,同樣的模式重演。 你的第一次訪問很慢,真的很慢; 當天的任何後續訪問都很好。

那麼,DNS預取會有哪些進展?

在我們上面的例子中,當您在早上第一時間訪問網站時,Safari會藉此機會為其在頁面上看到的每個鏈接發送DNS查詢。 根據您正在加載的頁面,可能會有幾個查詢,也可能有數千個,尤其是如果它是一個網站有很多用戶評論或您正在訪問某種類型的論壇。

問題並不在於Safari發送了大量的DNS查詢,而是一些較老的家庭網絡路由器無法處理請求負載,或者您的ISP的DNS系統的請求尺寸較小,或兩者兼而有之。

有兩種簡單的故障排除和解決DNS預取性能問題的方法。 我們將帶你通過這兩種方法。

更改您的DNS服務提供商

第一種方法是更改​​您的DNS服務提供商。 許多人使用他們的ISP告訴他們使用的任何DNS設置,但通常,您可以使用任何您想要的DNS服務提供商。 根據我的經驗,我們的本地ISP的DNS服務非常糟糕。 改變服務提供商是我們的一個很好的舉措; 這對你來說可能是一個很好的舉措。

您可以使用以下指南中的說明測試您當前的DNS提供商:

我的瀏覽器不能正確顯示網站:我如何解決這個問題?

如果在檢查了您的DNS服務之後,您決定改用其他服務,那麼顯而易見的問題是,哪一個? 您可以嘗試OpenDNS或Google Public DNS這兩種流行且免費的DNS服務提供商,但如果您不介意做一些調整,則可以使用以下指南來測試各種DNS服務提供商,以查看哪一個最適合您:

測試您的DNS提供商以獲得更快的Web訪問

一旦選擇了要使用的DNS提供商,可以在以下指南中找到有關更改Mac的DNS設置的說明:

管理您的Mac的DNS

一旦你改變到另一個DNS提供商,退出Safari。 重新啟動Safari,然後嘗試導致您重複出現問題的網站。

如果網站現在正在加載確定,並且Safari仍然響應,那麼您已經設置好了; 問題出在DNS提供商身上。 為了加倍確定,請關閉並重新啟動Mac後,再次嘗試加載相同的網站。 如果一切仍然有效,你就完成了。

否則,問題可能在其他地方。 您可以恢復到以前的DNS設置,或者保留新的DNS設置,特別是如果您更改為上面我建議的某個DNS提供商; 兩者工作得很好。

禁用Safari的DNS預取

如果您仍然遇到問題,可以通過再次訪問該網站或通過禁用DNS預取來解決問題。

如果DNS預取是Safari中的首選項設置,那將會很不錯。 如果您可以禁用逐個站點的預取,那將會更好。 但由於這些選項目前都不可用,我們必須使用不同的方法來禁用該功能。

  1. 啟動終端,位於/ Applications / Utilities。
  2. 在打開的終端窗口中,輸入或複制/粘貼以下命令:
  3. 默認寫入com.apple.safari WebKitDNSPrefetchingEnabled -boolean false
  4. 按輸入或返回。
  5. 然後你可以退出終端。

退出並重新啟動Safari,然後重新訪問造成您問題的網站。 它應該現在工作正常。 問題可能是家庭網絡中較舊的路由器。 如果有一天您更換了路由器,或者如果路由器製造商提供了解決此問題的固件升級,則您需要重新打開DNS預取。 就是這樣。

  1. 啟動終端。
  2. 在終端窗口中,輸入以下命令:
  3. 默認寫入com.apple.safari WebKitDNSPrefetchingEnabled
  4. 按輸入或返回。
  5. 然後你可以退出終端。

而已; 你應該全部設置。 從長遠來看,啟用DNS預取功能通常會更好。 但是,如果您經常訪問有問題的網站,關閉DNS預取功能可以使每日訪問更加愉快。