Javascript Internet Explorer 9-10崩溃的调试
我是一个网站的新开发者。以前的开发人员留下了很多垃圾和不稳定的代码。但主要的问题是,当我打开这个网站,试图浏览网页(尝试1-2个链接)时,我的IE 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中崩溃了,这是我以前遇到过的一个痛苦的问题。这一点都不好玩,也别指望有什么灵丹妙药,放心吧,你不是第一个遇到这个问题的人
打开页面后(完全冻结),我什么也做不了。 我的问题是: 如何跟踪问题(可能是某种调试器或在线仿真器)?你能推荐一些软件或在线工具来跟踪JS/HTML错误吗?我可以用它们来了解崩溃原因吗?好问题 所以!你的网站在IE中崩溃了,这是我以前遇到过的一个痛苦的问题。这一点都不好玩,也别指望有什么灵丹妙药,放心吧,你不是第一个遇到这个问题的人 。VisualStudio允许您在Internet Explorer中运行特定的脚本语句、使用断点和运行特定的代码位 然而,如果你觉得这太极端了,我怀疑如果IE使你的网站崩溃,这会有什么帮助。很可能,当开发人员工具打开时,它会崩溃得更快 以下是调试导致浏览器崩溃的代码的一些提示:
- 这种情况持续吗?如果它确实逐个删除资源
- 如果禁用JavaScript解决了您的问题,请开始逐个启用脚本文件。(将其他人发送到假URL。跟踪出现问题的一个文件
- 使用
语句,它们是阻塞的,因此在工作时不会在后台运行代码(除非使用WebWorkers之类的工具)他们不需要任何额外的工具,虽然它们是凌乱的,它们是你能做的最可靠的事情。你可以把它们放在DOM的中间,它们会阻止DOM的渲染,让你准确地发现问题所在。alert
- 添加同步AJAX调用,虽然我通常严格反对像这样滥用AJAX,但您可以在服务器上编写一个小型记录器来接受这些调用和日志。这将允许您使用日志记录
- 知道在哪里提问!问IE特定的奇怪问题的一个好资源,即使像StackOverflow这样的好资源也无法解决。IE开发团队在那里回复评论,你可以直接问“为什么我的网站不工作”这样的问题
- 当您发现问题时,不要忘记打开一个bug报告!您希望开发人员也能为您这样做
alert
语句执行这种繁琐的调试过程,禁用脚本等等都很重要。一旦你学会了,疼痛就会减轻。它还具有教育意义,因为它迫使您编写模块化代码,并对代码进行大量的单元测试和集成测试。我以前就处在你的位置,不得不修复IE中无法运行的坏代码,这很糟糕,但使用它有效地让我成为了一名更好的开发人员。这是一个很好的答案。我会在需要的时候给同事们指出。问题是IE完全死掉了(*IE完全冻结了,我在里面什么都做不了。)。所以我不能在里面发出警报等等。我可以完全禁用JS(注释所有代码),然后取消注释部分并跟踪IE是否会死掉。这就是我现在正在做的:)我想说的是,你可以在head部分的顶部放置一个I=0
,然后在每个脚本标记之间添加alert(I++)
,而不是一个接一个地注释所有脚本,这需要O(1)时间来调试,而不是O(n)因为你一次就知道哪个脚本是问题所在。