Openlayers 3在pointermove处理程序中使用调试器导致chrome崩溃

Openlayers 3 using debugger inside pointermove handler crashes chrome

本文关键字:调试器 崩溃 chrome pointermove 处理 程序 Openlayers      更新时间:2023-09-26

当我在" map "中设置断点时。("pointermove",处理程序)处理程序,使用chrome内置调试器,chrome崩溃。

崩溃,我的意思是未来不会生成指针移动事件,指针样式不会对网页的任何元素做出反应。'光标'样式的链接)。拖动导航停止工作。

这是我应该避免做的吗?

这既不是浏览器的错误,也不是解释器(JS)的错误。

如果你在事件处理程序中设置了断点,那么处理程序代码的执行将在断点处停止,即事件不会执行,直到你使用调试器或恢复执行。

编辑

事件处理程序在执行浏览器窗口所有事件处理程序的事件循环线程中运行。如果处理程序被停止,则事件循环被暂停。但是,如果您将鼠标移到浏览器窗口上,则浏览器窗口会转换新事件,然后将它们存储到事件队列中。如果继续执行,将处理队列中的下一个事件。但是断点仍然处于活动状态。您可以再次恢复,但与此同时,队列中存储的事件越来越多。下一个在断点中被捕获。

因此,删除断点并继续执行是唯一可以使您摆脱这个陷阱的方法。然后执行所有事件,并有机会处理进一步的事件。

我不知道队列的大小,但如果队列已满并且传递了更多事件,浏览器可能会崩溃。这意味着选项卡/窗口或浏览器本身将不再作出反应。