调试Internet Explorer 9-10崩溃

fre*_*nto 4 html javascript debugging internet-explorer-9 internet-explorer-10

我是一个网站的新开发者.以前的开发人员留下了大量垃圾和不稳定的代码.但主要的问题是,当我打开这个网站并尝试浏览页面(只需尝试1-2个链接)时,它会崩溃我的IE 9-10. 打开页面后,IE完全冻结,我无法做任何事情.

我的问题是:

如何跟踪问题(可能是某种调试器或在线模拟器)?您能否推荐一些软件或在线工具来跟踪JS/HTML错误,我可以用它来了解崩溃原因?

Ben*_*aum 13

好问题!

所以!你的网站在IE中崩溃,这是我以前遇到的一个痛苦的问题.这并不好玩,并且不要指望一个银弹解决方案,因为你不是第一个遇到这个问题的人而感到安慰.

您可以使用visual studio来调试IE.Visual Studio允许您运行特定的脚本语句,使用断点并在Internet Explorer中运行特定的代码.

如果这对你来说似乎太极端了,IE就会捆绑开发者工具.但是,我怀疑如果IE崩溃你的网站会有任何帮助.有可能,开放式工具打开后,它会崩溃得更快.

以下是调试崩溃浏览器的代码的一些提示:

  • 禁用JavaScript会持续存在吗?如果它确实逐个删除资源.

  • 如果禁用JavaScript可以解决您的问题,请逐个启动脚本文件.(将其他人发送到假网址.跟踪一个给你问题的文件.

  • 使用alert语句,它们是阻塞的,所以在它们工作时没有代码在后台运行(除非使用像WebWorkers这样的东西),它们不需要任何额外的工具,虽然它们很乱,但它们是最可靠的东西你可以做.您可以将它们放在DOM的中间,它们会阻止渲染的dom,从而可以准确找到问题所在.

  • 添加同步AJAX调用,虽然我通常严格禁止滥用这样的AJAX,但您可以在服务器上编写一个接受这些调用和日志的小型记录器.这将允许您使用日志记录.

  • 知道在哪里问!一个很好的资源,用于询问IE特定的奇怪问题,即StackOverflow等优秀资源无法解决的问题是IE博客.IE开发团队回复那里的评论,你可以直接问"我的网站为什么不工作"等问题.

  • 当您发现问题时,不要忘记打开错误报告!您希望开发人员为您做同样的事情.

  • 我所说的是,不是评论所有脚本并逐一取消注释它们需要花费O(n)时间,你可以放一个`<script type ="text/javascript"> i = 0 </ script> `在head部分的顶部,然后在每个脚本标记之间使用`<script type ='text/javascript'> alert(i ++)</ script>`,这将需要O(1)次调试而不是O( n)因为你一次性得到哪个脚本是问题所在. (5认同)
  • @magalter我不会给你鱼,这个想法是教你如何钓鱼:)很可能IE将崩溃您将来工作的网站.学习使用`alert`语句进行​​这种繁琐的调试过程,禁用脚本等很重要.一旦你擅长它就会变得不那么痛苦.它也很有教育意义,因为它会强制您编写模块化代码,并对代码进行大量单元化和集成测试.我之前处于你的位置,不得不修复那些没有在IE中运行的代码中的东西,它很糟糕,但是使用它有效地使我成为一个更好的开发人员. (2认同)
  • 这是一个很好的答案.我会在需要时指出同事. (2认同)