我的网站冻结了——可能是JavaScript,但我不知道为什么
My web site is freezing - probably JavaScript, but I can't identify why
我知道这是一个很渺茫的机会,所以我不指望答案,但我就是不明白为什么这个网页设计总是让我的浏览器死机。
http://fuzionve.com/test我在Chrome开发人员工具中运行了审计工具,但似乎没有什么实质性的。当我在浏览器中加载它时,它会冻结,然后立即完全加载。
有什么建议吗?
非常感谢你的帮助
1)删除/注释掉代码
2)加载页面,检查是否冻结
3)如果仍然冻结,重复步骤1
4)如果没有冻结,检查您刚刚删除的代码
这里可以正常工作。
关于"简单"优化的一些建议:
-
<link rel="stylesheet" href="http://fonts.googleapis.com/css?family=PT+Sans:400,700,400italic" />
—这是一个外部样式表。您的浏览器必须与另一台服务器建立连接。考虑下载字体(和样式表)到您自己的服务器。 - 加载4个样式表,这需要4次往返服务器。考虑将它们合并到一个样式表中。如果你喜欢在开发中使用多个样式表,在发布版本中将它们合并到一个文件中。
- 脚本也是一样:你有3个脚本。考虑在发布版本中将它们合并到一个文件中。
- 当您的浏览器检测到
<script>
元素时,它会停止呈现您的页面,直到该脚本文件从服务器下载并执行。这是因为脚本可以使用document.write()来编写HTML,从而更改页面。如果你知道你的脚本不写HTML(通常他们不写,至少直到文档。ready事件被触发),考虑使用HTML5async
或defer
属性(https://developer.mozilla.org/en-US/docs/HTML/Element/script)。请注意,这些属性只在现代浏览器中支持。
如果这些方法都不起作用,请遵循Brad M的建议来跟踪您的问题。
我有同样的问题,当使用多个(和重的)插件,你能做的,是改变他们的一些代码,开始一个接一个,像回调,至少我改变了3-4个插件代码来做这个改变。
它可能完成这项工作,检查,用setInterval,看看是否一些插件已经完成。或者在代码中实现回调,完成后再调用另一个代码。
我找到了这个lib,它可以帮助你:https://github.com/caolan/async
相关文章:
- JavaScript-为什么我可以在数组中设置键
- Javascript:为什么是构造函数's __proto__属性Empty(){}
- JavaScript:为什么Addy's观察者模式
- JavaScript - 为什么这个闭包不保存参数
- JavaScript:为什么不't将背景变化发送给用户's选择(简单)
- Javascript-为什么我的JQueryAJAX请求失败
- JavaScript:为什么这个循环的优化使它变慢了
- JavaScript:为什么 array.push() 附加两个对象而不是一个对象
- JavaScript - 为什么这不起作用?我看不出有什么区别
- Javascript——为什么一个document.getElementById()有效,而另一个无效
- Javascript-为什么不是't此setTimeout函数正在工作
- HTML/JavaScript:为什么不'我的纽扣坏了
- JavaScript:为什么这个代码不;t工作
- Javascript:为什么复制值而不更改
- 阻止表单提交 javascript 为什么有一个明显的错误语句返回 true
- JavaScript-为什么这段代码不起作用
- Javascript:为什么我把“;()“;在console.log中调用变量时在变量后面
- Javascript:为什么要使用indexOf()来匹配字符串中的值
- JavaScript:为什么boolean总是返回true
- JavaScript-为什么当我向表中添加新列时,它会说“;未定义的“;在额外的细胞中