【问题标题】:How to debug a script causing web page to take long time to load?如何调试导致网页需要很长时间才能加载的脚本?
【发布时间】:2023-03-03 16:11:01
【问题描述】:

我公司的一个内部网站有一个页面需要很长时间才能加载。当我使用 IE 11 查看页面时,显示以下消息:

[域] 由于脚本长时间运行而没有响应

消息对话框有一个“停止脚本”按钮,但没有“调试”按钮。

这个网站使用了大量过去构建的 JavaScript 脚本,我需要对其进行调试以确定是哪一个导致了这个问题。

我的问题是 IE 直到页面加载后才允许我启动 F12 开发人员工具,如果我在加载页面之前打开 F12 工具然后重新加载页面,调试工具窗口就会消失。

我想问的问题:

  1. 如何让 F12 工具保持打开状态以配置 页面?
  2. 或者有没有办法调试在页面加载时运行的脚本 Firefox (v.45.8) 调试工具?

【问题讨论】:

  • 能否停止运行脚本,打开分析器然后重新加载?
  • 在导航到页面之前为什么不打开它。
  • Firefox 工具与 IE 没有什么不同......
  • 嗨@richbai90,我尝试过停止脚本、打开分析器然后重新加载页面的顺序,这就是调试窗口消失的地方(当我重新加载页面时)。
  • 嗨@epascarello,在我的问题中,我已经提到如果我在加载页面之前打开 F12 工具,然后重新加载页面,调试窗口就会消失。我想也许 Firefox 工具中有一些持久性设置。

标签: javascript debugging internet-explorer firefox browser


【解决方案1】:

保持 F12 开发者工具打开:

  • 要使 Internet Explorer 工具栏保持可见,请单击 Alt,单击 查看,指向 工具栏 并选中 菜单栏,然后点击锁定工具栏Info 来自微软

在 IE 中调试替代方案:

  • 如果您有权访问文件,则可以将此标签粘贴到您尝试调试的页面上,它将打开Firebug:<script type="text/javascript" src="https://getfirebug.com/firebug-lite.js"></script>

  • 如果您无权访问文件,您仍然可以通过 bookmarklet:javascript:(function(F,i,r,e,b,u,g,L,I,T,E){if(F.getElementById(b))return;E=F[i+'NS']&&F.documentElement.namespaceURI;E=E?F[i+'NS'](E,'script'):F[i]('script');E[r]('id',b);E[r]('src',I+g+T);E[r](b,u);(F[e]('head')[0]||F[e]('body')[0]).appendChild(E);E=new%20Image;E[r]('src',I+L);})(document,'createElement','setAttribute','getElementsByTagName','FirebugLite','4','firebug-lite.js','releases/lite/latest/skin/xp/sprite.png','https://getfirebug.com/','#startOpened'); 使用 Firebug Lite

  • 使用IEDiagnosticsAdapter。它是一个代理,使工具能够使用 Chrome 远程调试协议调试和诊断 IE。

  • 安装Debug Bar,它为内置开发者工具提供了扩展的功能集。
  • 安装IE Tester,模拟各种IE实例(版本),并使用其内置的调试栏。通过这种方法,您还可以查明特定于版本的问题。

你也可以看看How to troubleshoot script errors in Internet Explorer微软的文章。

【讨论】:

  • 谢谢 Emre Piskin,我有点惊讶,但锁定工具栏的说明实际上确实导致窗口保持打开状态。
猜你喜欢
  • 2018-07-10
  • 1970-01-01
  • 1970-01-01
  • 2014-08-15
  • 1970-01-01
  • 1970-01-01
  • 2012-06-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多