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

Javascript Openlayers 3在pointermove处理程序中使用调试器崩溃chrome,javascript,breakpoints,openlayers-3,Javascript,Breakpoints,Openlayers 3,当我使用chrome的内置调试器在“map.on('pointermove',handler')处理程序中设置断点时,chrome崩溃 所谓崩溃,我的意思是不会生成未来的pointermove事件,指针样式不会对网页的任何元素做出反应(例如链接上的“游标”样式)。拖动导航停止工作 这只是我应该避免做的事吗 这既不是浏览器的错误,也不是解释器(JS)的错误。这是意料之中的行为 如果在事件处理程序中设置了断点,则处理程序代码的执行将在该断点处停止,即,在使用调试器或恢复执行之前,不会执行该事件 编辑

当我使用chrome的内置调试器在“map.on('pointermove',handler')处理程序中设置断点时,chrome崩溃

所谓崩溃,我的意思是不会生成未来的pointermove事件,指针样式不会对网页的任何元素做出反应(例如链接上的“游标”样式)。拖动导航停止工作


这只是我应该避免做的事吗

这既不是浏览器的错误,也不是解释器(JS)的错误。这是意料之中的行为

如果在事件处理程序中设置了断点,则处理程序代码的执行将在该断点处停止,即,在使用调试器或恢复执行之前,不会执行该事件

编辑

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

因此,删除断点并恢复执行是唯一可以让您摆脱此陷阱的方法。然后执行所有事件,并有机会处理其他事件


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

要使指针再次“正常”运行,需要重新启动浏览器。浏览器是否可能在断点处停止执行?也许它仍然抛出所有被断点捕获的鼠标事件。@Peter,是的,浏览器调试器断点被正确捕获,我可以单步执行一次。在此之后,我描述的指针症状开始了,这是因为断点不会被自动删除。下次发生事件时,也会在断点中捕获该事件。我想至少因此,在重新加载页面(?)或重新启动浏览器之前,任何事件都不会生效。我想断点被删除了。试试看。设置断点。移动鼠标。当执行将在断点处停止时,删除断点并进行调试。调试后问题仍然存在吗?