Поймать / предотвратить изменение страницы при достижении точки останова: Firefox - PullRequest
1 голос
/ 08 мая 2019

У меня проблема с тем, что AJAX-запросы, которые не выполнены, вызывают какую-то ошибку, которая обнаруживается моим глобальным обработчиком ошибок при использовании Firefox.

В результате, за долю секунды до изменения страницы появляется предупреждение о том, что «у нас возникли проблемы с соединением с сервером». Это безвредно, поскольку страница меняется, но это раздражает, и я хочу определить, что это за сообщение, и избежать его в Firefox.

Поскольку проблема возникает только тогда, когда Firefox прерывает их в запросах AJAX, мне нужно открыть страницу в браузере, прежде чем новая перезагрузится.

Я использую Firefox 66.0.3.

Согласно веб-документам Mozilla , пока нет возможности прерывать событие DOM в "новом отладчике", , как в Chrome devtools :

Cannot break on DOM events

У меня есть код обработки ошибок, к которому я могу прикрепить точку останова. К сожалению, любая точка останова (или оператор debugger) не не препятствует изменению страницы, поэтому я не могу отладить ее на самом деле.

Есть ли способ для точки останова до перехвата до изменения страницы, чтобы я мог исследовать стек / консоль?

1 Ответ

0 голосов
/ 22 мая 2019

Так что это не "идеальное" решение, но это "а" решение.

Что я сделал, чтобы найти необходимую информацию для отладки, - сохранить журнал в консоли.

Затем я изменил наши сценарии для записи различных переменных и / или стека на консоль, чтобы можно было отлаживать состояние запроса и браузера, который вызвал проблему.

Для чего стоит то, что при закрытии запроса AJAX, когда пользователь переходит со страницы, в Firefox вызывается обработчик jQuery ajaxError и statusText для аргумента установлено значение "error".

Чтобы обработчик не выдавал ошибочное всплывающее окно «ошибка связи с сервером», я проверяю, установлено ли для status запроса все еще значение 0 (неотправлено / загружается).

И нет, я не уверен, почему Chrome не запускает обработчик ошибок ajax, а Firefox делает.

...