2015-06-09 108 views
1

當我設置一個「map.on(‘pointermove’,處理程序)」處理器,使用Chrome內置的調試器,瀏覽器崩潰中的斷點。的OpenLayers 3崩潰鉻

死機的,我的意思是不產生未來pointermove事件,以及指針樣式不給網頁的任何元素反應(例如:「光標」在林克斯風格)。拖動導航停止工作。

這是我應該避免做的事嗎?

+0

重新啓動瀏覽器才能使指針表現得「正常」了 – ryansstack

+0

但願這是可能的,該瀏覽器在斷點處停止執行?也許它仍然會拋出所有被斷點捕捉到的鼠標事件。 –

+0

@Peter,是的,瀏覽器調試器斷點被正確捕捉,我可以一次一步。在此之後,我描述的指針症狀開始於 – ryansstack

回答

1

既不是瀏覽器的錯誤,也不是解釋器(JS)的錯誤。這是預期的行爲。

如果在事件處理程序,然後處理程序代碼的執行停止在斷點處,即不excuted事件,直到你踩與調試器或恢復執行設置一個斷點。

編輯

事件處理程序中執行一個瀏覽器窗口中的所有事件處理程序的事件循環線程中運行。如果處理程序停止,則事件循環暫停。但是,如果您將鼠標移動到瀏覽器窗口上,然後將它們存儲到事件隊列中,則瀏覽器窗口會投射新事件。如果您恢復執行,隊列中的下一個事件將被處理。但是斷點仍然活躍。您可以再次恢復,但同時隊列中存儲的事件越來越多。接下來是捕捉到的斷點。

因此,刪除斷點並恢復執行是唯一可以讓你擺脫陷阱的東西。然後所有的事件都被執行,並且進一步的事件也有機會被處理。

我不知道隊列的大小,但是如果它已滿並且有更多事件被傳遞,瀏覽器可能會崩潰。這意味着選項卡/窗口或瀏覽器itselve不會反應了。

+0

我編輯了我的答案,使其更加清晰。 –