今天,由于某种奇怪的原因,Firefox 停止正常工作,因为它正在尝试从ajax.googleapis.com
。
我能做些什么来避免这种情况?Safari 和 Chrome 运行正常。
我尝试卸载 Firebug 并清除缓存。
唯一有效的办法是完全禁用 JavaScript。
这似乎是罪魁祸首链接:
http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js
我能做些什么?
编辑
我觉得我已经找到问题所在了。我的代理每次只为文件提供一字节,因此 Firefox 会一直使用它。
我不明白为什么 Safari 和 Chrome 会立即接受它。
我昨晚所做的是,让 FF 整晚都打开,让他有机会加载文件,我希望我被缓存了,下次就不需要再去缓存了。
今天早上,页面加载成功但是页面没有缓存,因为下一次请求同样失败了。
以下视频展示了该问题:
答案1
Firefox 扩展Decentraleyes,创建于 2015 年,用本地资源替换 CDN 资源。我从未尝试过,但根据评论,它看起来很有前景。
答案2
ajax.googleapis.com 提供的一些 Google API 存在严重的 Firefox 性能问题。许多示例之一就是在 Google 自己的搜索栏中输入内容时速度很慢或缺少字符。
我使用 Adblock Plus 来阻止 Google 访问所有 Ajax API”http://ajax.googleapis.com/*。这修复了许多 Firefox Web 性能问题。缺点是一些较新的网站可能需要 Ajax API 才能正常显示或运行。
答案3
如果你不需要它,请在 hosts 文件中添加
0.0.0.0 ajax.googleapis.com
你还不如查看教程和阻止列表以保证您的安全。
最好阻止这些域与您的计算机的连接,而不是尝试阻止已建立的连接的脚本。
答案4
这ajax.googleapis.com
URL 指的是外部 JavaScript 库,其中包含网页函数可能使用其自身的一些内联 JavaScript。
在大多数(如果不是全部)浏览器中,页面中的内容不会呈现,直到所有排队脚本执行完毕*。即使内联 JavaScript 不需要外部 JavaScript 库中的任何内容,浏览器也需要先下载所有定义的外部库,以防万一需要它们。因此,如果外部脚本不在浏览器的缓存中†(或:每当您明确刷新了浏览器‡),然后一切都会停止,直到脚本下载完成。
URLajax.googleapis.com
在我的互联网连接上加载正常,我猜 Safari 和 Chrome 的缓存中仍有这个库?至于代理速度非常慢:这可能是某些病毒扫描程序(Mac 上不太可能)或某些防火墙?如果问题出在代理上,那么你就无法控制了,所以(假设你需要使用那代理):联系管理员?同时,你可以对 Google 托管的其他库重复测试,例如jQuery 1.3.2或者jQuery UI 1.7.2。
(如果真的一切都失败了,那么您可以尝试找到某种方法将请求重写为ajax.googleapis.com/[..]/1.3.2/jquery.min.js
其他主机的 URL...)
*参见(慢)Cuzillion 的示例. 尽管 IE8 是第一款浏览器到下载并行脚本,它仍然不会执行使它们并行。
†谷歌告诉你的浏览器将其缓存 31,536,000 秒,即 365 天。并且它允许公开缓存,因此允许代理缓存它,并将其用于其他客户端。
‡当点击刷新时,对于缓存的项目,大多数浏览器都会If-Modified-Since
在请求中添加标头,因此只有缓存中的内容过期时才会真正下载。但是:即使服务器以 响应HTTP/1.x 304 Not Modified
,浏览器仍需要等待该答案。因此:在速度较慢时点击刷新可能会使情况变得更糟!