如果我在网站上运行IE8调试器,代码会发生什么变化

What changes in the code if I run IE 8 debugger on a web site?

本文关键字:代码 变化 什么 调试器 网站 IE8 运行 如果      更新时间:2023-09-26

我有一个带有OpenLayers的网站,地图在IE8中不起作用(它在IE9、Firefox、Opera、Chrome、Safari中起作用)。

然而,当我在IE8中运行调试器工具,并一直点击F5直到完成时,网站突然工作正常。它发现的问题只在OpenLayers.js中,而不是在我的脚本中。

现在,我真的是web开发的新手,但我一直认为调试器不会更改代码中的任何内容,除非我手动更改,如果它更改了,我会真正看到它在做什么。但IE8只是指出了问题,然后网站就工作了。

这是网站的链接:

http://xweb.geos.ed.ac.uk/~1114894/eq/map.html

有人能简单地向我解释一下吗?

谢谢,如果这个问题很愚蠢,我深表歉意。

如果你能指定它不起作用的方式,这会有所帮助,但我猜调试器的暂停时间足够长,可以让一些东西跟上,否则IE8无法在需要它之前及时加载或运行。

这几乎可以肯定是一个竞赛条件。如果你有AJAX调用,即使脚本暂停,它们后面的HTTP请求也会继续运行,所以它们有机会在你点击F5继续之前完成。如果不进行调试,脚本将继续运行,并可能在AJAX结果到达之前尝试访问它。

要修复此问题,请确保您等待AJAX结果到达,然后再尝试使用它所包含的任何内容。或者(不推荐,但可能)您可以使AJAX请求同步。这样就消除了出现竞争状况的任何可能性。