Javascript Internet Explorer 9-10崩溃的调试

Javascript Internet Explorer 9-10崩溃的调试,javascript,html,debugging,internet-explorer-9,internet-explorer-10,Javascript,Html,Debugging,Internet Explorer 9,Internet Explorer 10,我是一个网站的新开发者。以前的开发人员留下了很多垃圾和不稳定的代码。但主要的问题是,当我打开这个网站,试图浏览网页(尝试1-2个链接)时,我的IE 9-10崩溃了。 打开页面后(完全冻结),我什么也做不了。 我的问题是: 如何跟踪问题(可能是某种调试器或在线仿真器)?你能推荐一些软件或在线工具来跟踪JS/HTML错误吗?我可以用它们来了解崩溃原因吗?好问题 所以!你的网站在IE中崩溃了,这是我以前遇到过的一个痛苦的问题。这一点都不好玩,也别指望有什么灵丹妙药,放心吧,你不是第一个遇到这个问题的人

我是一个网站的新开发者。以前的开发人员留下了很多垃圾和不稳定的代码。但主要的问题是,当我打开这个网站,试图浏览网页(尝试1-2个链接)时,我的IE 9-10崩溃了。
打开页面后(完全冻结),我什么也做不了。

我的问题是:

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

好问题

所以!你的网站在IE中崩溃了,这是我以前遇到过的一个痛苦的问题。这一点都不好玩,也别指望有什么灵丹妙药,放心吧,你不是第一个遇到这个问题的人

。VisualStudio允许您在Internet Explorer中运行特定的脚本语句、使用断点和运行特定的代码位

然而,如果你觉得这太极端了,我怀疑如果IE使你的网站崩溃,这会有什么帮助。很可能,当开发人员工具打开时,它会崩溃得更快

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

  • 这种情况持续吗?如果它确实逐个删除资源

  • 如果禁用JavaScript解决了您的问题,请开始逐个启用脚本文件。(将其他人发送到假URL。跟踪出现问题的一个文件

  • 使用
    alert
    语句,它们是阻塞的,因此在工作时不会在后台运行代码(除非使用WebWorkers之类的工具)他们不需要任何额外的工具,虽然它们是凌乱的,它们是你能做的最可靠的事情。你可以把它们放在DOM的中间,它们会阻止DOM的渲染,让你准确地发现问题所在。

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

  • 知道在哪里提问!问IE特定的奇怪问题的一个好资源,即使像StackOverflow这样的好资源也无法解决。IE开发团队在那里回复评论,你可以直接问“为什么我的网站不工作”这样的问题

  • 当您发现问题时,不要忘记打开一个bug报告!您希望开发人员也能为您这样做

首先,浏览器中内置了调试器。在我打开页面(即完全冻结)后,我无法在其中执行任何操作。注释掉脚本并开始逐个重新启用它们,直到找到问题的原因。进入该文件并注释掉块,直到找到问题发生的区域。是的,这是这是一个很好的建议,唯一可以节省大量时间的问题..问题在于AJAX响应及其在页面上的位置。如果AJAX弹出窗口足够大并且不适合页面高度,它可能会崩溃IE。不幸的是,我没有时间在干净的页面上重现问题。似乎这是某种IE错误。修复方法是将html从AJAX弹出窗口移动到higher,所以它可以完全适应页面高度。@magalter我不会给你鱼,我的想法是教你如何钓鱼:)IE很可能也会破坏你将来工作的网站。学习使用
alert
语句执行这种繁琐的调试过程,禁用脚本等等都很重要。一旦你学会了,疼痛就会减轻。它还具有教育意义,因为它迫使您编写模块化代码,并对代码进行大量的单元测试和集成测试。我以前就处在你的位置,不得不修复IE中无法运行的坏代码,这很糟糕,但使用它有效地让我成为了一名更好的开发人员。这是一个很好的答案。我会在需要的时候给同事们指出。问题是IE完全死掉了(*IE完全冻结了,我在里面什么都做不了。)。所以我不能在里面发出警报等等。我可以完全禁用JS(注释所有代码),然后取消注释部分并跟踪IE是否会死掉。这就是我现在正在做的:)我想说的是,你可以在head部分的顶部放置一个
I=0
,然后在每个脚本标记之间添加
alert(I++)
,而不是一个接一个地注释所有脚本,这需要O(1)时间来调试,而不是O(n)因为你一次就知道哪个脚本是问题所在。