解决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预取功能可以使每日访问更加愉快。