此页面上的脚本导致ie运行缓慢

sir*_*cco 30 javascript internet-explorer

问题在于标题 - IE是行为不端,并且说有一个脚本运行缓慢 - FF和Chrome没有这个问题.

我怎样才能找到问题所在.那页上有很多JS.手工检查不是一个好的想法

编辑:这是我正在进行的项目的页面......但我需要一个工具来找到问题.

结束:事实证明它是UpdatePanel - 它会以某种方式"混淆"并且需要很长时间来处理某些事情.我只是把它扔出窗外 - 从现在开始只使用JQuery:D.

我正在选择Remy Sharp的回答,因为我真的不知道这个工具,看起来很酷.

nik*_*d23 52

不同的浏览器会检测到长时间运行的脚本:

  • 一旦执行了500万条语句,IE将发出警告(有关MSDN的更多信息)
  • 如果脚本花费的时间超过10秒,Firefox将发出警告(MDN上的更多信息)
  • 如果脚本耗时超过5秒,Safari将发出警告
  • Chrome(1.0)没有设置限制,只会继续尝试,直到OutOfMemory异常,此时崩溃
  • Opera将在没有任何警告的情况下继续永远运行.

Nicholas Zakas写了一篇关于这个主题的精彩文章.

因此 - 避免这些问题的最佳方法是减少循环,递归和DOM操作.


Rem*_*arp 18

获取IBM Page Profiler的副本:

https://www.ibm.com/developerworks/community/groups/service/html/communityview?communityUuid=61d74777-1701-4014-bfc0-96067ed50156

这是免费的(总是一场胜利).在后台启动它,给它几秒钟,然后在IE中刷新页面.返回探查器,它将列出页面上使用的所有资源,并为您提供详细的配置文件信息 - 特别是JavaScript需要很长时间才能执行的地方.

找到问题的根源应该是一个良好的开端.

如果脚本标记是内联的,我建议创建该文件的本地副本,并在可能的情况下将脚本标记分离为单独的文件.

  • 我可能会遗漏一些东西,但您链接的工具似乎没有进行您建议的javascript分析.它所做的只是提供有关加载资源的详细信息. (2认同)

Rah*_*hul 9

删除一半的代码,看看它是否仍然发生.如果不是,那就是你移除的一半.重复,直到找出导致问题的代码块.

  • 已经尝试过这个 - 但仍然没有运气......会继续努力.我希望有某种工具. (2认同)