Firefox 和 Chrome 在 localhost 上运行缓慢;已知修复在 Windows 7 上不起作用

Posted

技术标签:

【中文标题】Firefox 和 Chrome 在 localhost 上运行缓慢;已知修复在 Windows 7 上不起作用【英文标题】:Firefox and Chrome slow on localhost; known fix doesn't work on Windows 7 【发布时间】:2010-12-16 03:26:31 【问题描述】:

众所周知,当启用 IP6 时,Firefox 和 Chrome 在 localhost 上运行缓慢。在以前的 Windows 版本中,最简单的修复方法是从 hosts 文件中注释掉这一行,如 the answer to this question 中所述。

::1 localhost

不过,as noted in this question,在 Windows 7 中,这一行已经被注释掉了:

# localhost name resolution is handled within DNS itself.
#   127.0.0.1 localhost
#   ::1 localhost

是否有其他方法可以在 Windows 7 中禁用 ::1 localhost 引用?

【问题讨论】:

顺便说一句,我注意到一个类似的问题被转移到 SuperUser - 我认为这是只有程序员才能回答的问题,因为没有其他人经常在浏览器中使用 localhost;所以我希望你能让我把它留在这里。我前段时间将这个问题发布给了超级用户,但一无所获。 superuser.com/posts/65049 这不是更适合 superuser.com,因为它与编程无关吗? 如果不解决,这个问题会拖慢开发人员的速度。我投票决定保留它。有人知道这是否是 google / ff 正在努力解决的问题吗? 我在将开发系统升级到 Win 7 后遇到了这个问题。我花了几个小时调试我的 Web 服务器代码,试图弄清楚为什么它传递文档的速度如此之慢,然后我才将它追踪到 DNS 并意识到这是本地主机的分辨率。这绝对是一个开发者的问题。 【参考方案1】:

事实证明,缓慢是由 DNS 的 IPv6 问题引起的,并且可以通过在进行 localhost 测试时在 Firefox 中关闭 IPv6 支持来轻松​​解决。要进行更改,请键入

about:config 

在地址栏中,找到

network.dns.disableIPv6

setting 并双击它以将其设置为 true。这解决了 Vista 上的 Firefox localhost 问题,一切都再次快速运行。

http://kb.mozillazine.org/Network.dns.disableIPv6 拥有您可能需要的所有信息 - 祝您好运!

【讨论】:

太好了,谢谢。我试过这个并且它有效。我仍然希望看到 Chrome 的解决方案。 这是一个众所周知的 FF 问题。我总是在本地开发机器上关闭 ipv6。 我个人更喜欢将localhost 添加到network.dns.ipv4OnlyDomains 而不是完全关闭ipv6。我知道现在没有太大区别,但我无法摆脱这种感觉,我会忘记有一天我这样做了,想知道为什么 ipv6 网站无法加载 Tim 的方法更好,请参阅 kb.mozillazine.org/Network.dns.ipv4OnlyDomains 和此处的另一条评论:dotnetslackers.com/ASP_NET/… 多年来我一直在我的 Mac 上使用 Firefox 进行本地开发,直到最近才遇到这个问题。将 localhost 添加到 network.dns.ipv4OnlyDomains 对我有用,但我必须重新启动 Firefox 才能生效。【参考方案2】:

事实证明,如果您取消注释 hosts 文件中的 127.0.0.1 行,Chrome 会在 localhost URL 上恢复其活泼的自我。

# localhost name resolution is handled within DNS itself.
    127.0.0.1 localhost

主机文件通常位于C:\WINDOWS\system32\drivers\etc\hosts。要在 Win7 中编辑它,您需要以管理员身份运行记事本。

【讨论】:

+1,感谢您的支持 - 使我的加载时间(5-10 秒到 我认为这也适用于 FF;还是您必须将本地主机添加到 FF 的仅 IPV4 域。 我有 Windows 7,它也适用于 FF,这样就不需要在 FF 本身中禁用 IPv6。 编辑文件可能会很痛苦,因为您必须以管理员身份运行记事本,您可以使用此工具使其更快-amazify.com/windows-hosts-file-editor【参考方案3】:

我会按照 Tim Schneider 所说的去做。这个詹姆斯在这里也提到过: http://theycallmemrjames.blogspot.com/2010/09/firefox-is-really-slow-testing-sites-on.html

“双击ipv4OnlyDomains,输入localhost”

【讨论】:

【参考方案4】:

正如其他人在另一个答案中指出的那样 - 如果您有 bitdefender,那么这将严重破坏您的开发体验。

最好打开位防御控制台,输入 alt-shift-control-g(将其置于“游戏模式”)并从那里运行。

在游戏模式下,bitdefender 不会阻塞你的本地主机!

【讨论】:

【参考方案5】:

我遇到了一个奇怪的问题,只有一个本地域运行缓慢,而其他所有域的响应都很好。不知道为什么,最后将::1 localhost 放在我的另一个::1 something.local 下方的底部,它立即清理干净,之前我将它放在其他条目之上。 (我运行的是 OS X 10.8.3)

我的最终主机文件看起来像这样:

127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 something.local
::1 something2.local
::1 something3.local
::1 localhost
fe80::1%lo0 localhost

【讨论】:

太棒了!在 osx 上为我工作【参考方案6】:

这不是一个直接的答案,但我遇到了同样的问题,上述 IPv6 或主机文件更改都不适用于我。按 F5 刷新本地主机上的 js 更改后,我的 asp.net MVC4 项目真的很慢。它发生在所有浏览器上——Chrome、FF 和 IE。最终我发现 IIS Express 8.0 在我没有意识到的情况下安装了,结果发现 8.0 在提供 js 文件时非常慢并且似乎是一个错误。如果我在命令行上运行 iisexpress 并按 F5,我可以看到每个 js 文件需要 4 或 5 秒才能加载。

我最终卸载了 IIS 8.0 并安装了 IIS express 7.5,问题立即得到解决。以下是我遵循的步骤:

卸载 IIS express 8.0 删除 IISExpress 文件夹(在 Win 7 上它位于 My Documents\IISExpress 中) 安装 IIS express 7.5 (Link to IIS Express 7.5 download)

IIS Express 8.0 似乎与 VS 2012 一起安装,因此如果您有新安装或可能有服务包更新,这可能会升级您以前的 IIS express 版本。

【讨论】:

【参考方案7】:

我在主机中有几个条目(因为我正在运行虚拟服务器)。以前我有

127.0.0.1        localhost
127.0.0.2      i.localhost
127.0.0.3 secure.localhost

似乎效果更好但并不完美的是this:

127.0.0.1 localhost secure.localhost i.localhost

建议关闭浏览器,关闭Apache,测试时逆序重启。

到目前为止,没有一个修复对我来说效果很好。 问题仍然是间歇性的。 ..

但是,我注意到一些有趣的事情,并想我会分享,希望其他人可以添加到这里。

如果您关闭 WiFi(即关闭外部 Internet 馈送),并且如果您同时打开了 Chrome、FireFox 和可能的其他浏览器,并且 Chrome 卡住了一个页面,然后你得到旋转的针轮,然后你尝试从另一个浏览器(从本地主机)加载一个文件,它也会挂起,直到 chrome 最终超时(或其他什么)并最终在几秒钟后完成,即使是简单的页面。

IE 阻塞和阻止来自其他浏览器的访问也会发生这种情况。我已经尝试过很多次了,我确信发生了一些非常有趣的事情。

不同的浏览器进程之间似乎存在联系。我不想这么说,但我怀疑 Windows IP 堆栈中存在错误,这听起来不可能。另一种可能性是chrome只是陷入困境或占用ip堆栈,或锁定某些文件,使其他人无法使用。

另外值得注意的是,如果 chrome 被冻结,您重新启用 WiFi,只要互联网连接,chrome 或 IE 就会完成,以及任何其他浏览器也被阻止。

如果你问我,那有点奇怪。如果您在本地主机上工作,则不应与互联网互动。

我尝试使用 WireShark 查看发生了什么,但它令人困惑,到目前为止我还无法确定任何涉及的数据包。

发生了一件非常有趣的事情。

我删除了我的 .htaccess,并在其中放置了一个与默认值相比变化最小的 httpd.conf。

我正在运行 Win7x64Pro、Apache 2.4.7。

顺便说一句,这不是 php 的事情。在这一点上我很确定。

而且锁定似乎发生在 ^R(页面重新加载)上,而不是浏览到页面上,以及需要检查其他页面组件的当前位置,例如菜单精灵(图像)。这将是有 304 状态的地方(使用 HttpFox 来查看这些)。

此外,如果您快速重新加载相同的页面,它的工作机会就会高得多。如果您等待一分钟,它通常会再次作呕。我怀疑 chrome 正在从短期现金中获得结果,这在一定程度上掩盖了更深层次的问题。

【讨论】:

【参考方案8】:

回答有点晚了,但我尝试了以上所有方法,但在 Windows 7 上对我来说仍然很慢。当我使用 localhost 时,页面加载大约需要 20 多秒。

@Mark Mayo 的回答改进了 Firefox,但并非一直如此,Chrome 仍然很慢。

我找到了解决方案here

基本上,我在 Apache httpd.conf 文件中添加了以下几行(因为它们还没有)

AcceptFilter http none 
AcceptFilter https none 
EnableSendfile off 
EnableMMAP off

测试了 Chrome 和 Firefox,页面立即加载

【讨论】:

【参考方案9】:

只需在 Chrome 上尝试“隐身”模式,在 Firefox 上尝试“私人模式”。

我知道这不应该是一个正确的答案。但是您可以将其用作临时解决方案。

【讨论】:

以上是关于Firefox 和 Chrome 在 localhost 上运行缓慢;已知修复在 Windows 7 上不起作用的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Chrome 和 Firefox 中将按钮输入样式设置为相同?

WebAPi - Firefox 和 chrome 中的 CORS

为啥这个 SVG 在 Chrome 和 Firefox 中都缺少一半的轮廓?

比较 chrome 和 Firefox 的字体大小问题

比较 chrome 和 Firefox 的字体大小问题

在 Chrome、Firefox 和 Safari 中强制标准/怪癖模式?