1

我知道这是一个长镜头,所以我不指望一个答案,但我只是为了我的生活无法弄清楚为什么这个网页设计一直冻结我的浏览器。

http://fuzionve.com/test

我在 Chrome 开发人员工具中运行了审计工具,但似乎没有什么实质性的。当我在浏览器中加载它时,它会冻结,然后立即完全加载。

有什么建议么?

非常感谢你的帮助。

4

3 回答 3

5

1)删除/注释掉代码

2)加载页面并测试是否冻结

3)如果仍然冻结,从步骤 1 开始重复

4)如果没有冻结,检查你刚刚删除的代码。

于 2013-04-10T17:10:09.487 回答
1

它在这里工作正常。

关于“简单”优化的一些建议:

  1. <link rel="stylesheet" href="http://fonts.googleapis.com/css?family=PT+Sans:400,700,400italic" />- 这是一个外部样式表。您的浏览器必须与另一台服务器建立连接。考虑将字体(和样式表)下载到您自己的服务器。
  2. 您加载了 4 个样式表,这需要 4 次往返服务器。考虑将它们合并到 1 个样式表中。如果您更喜欢在开发中使用多个样式表,请将它们合并到发布版本中的单个文件中。
  3. 脚本也是如此:你有 3 个脚本。考虑将它们合并到发布版本中的 1 个文件中。
  4. 当您的浏览器检测到一个<script>元素时,它会停止呈现您的页面,直到该脚本文件已从您的服务器下载并执行。这是因为脚本可以使用 document.write() 来编写 HTML,从而更改您的页面。如果您知道您的脚本不编写 HTML(通常它们不会,至少在 document.ready 事件被触发之前),请考虑使用 HTML5asyncdefer属性(https://developer.mozilla.org/en-US/文档/HTML/元素/脚本)。请注意,这些属性仅在现代浏览器中受支持。

如果这些事情没有帮助,请按照 Brad M 的建议来追踪您的问题。

于 2013-04-10T17:22:14.377 回答
1

我在使用多个(和重型)插件时遇到了同样的问题,你可以做的是改变他们的一些代码,一个接一个地开始,比如回调,至少我改变了 3-4 个插件代码来做出改变。

它可能完成这项工作,使用 setInterval 检查某个插件是否完成。或者实现一个回调,进入代码,完成后,调用另一个代码。

我找到了这个库,它可以帮助你: https ://github.com/caolan/async

于 2013-04-10T17:56:35.660 回答