Отладка проблемы перезагрузки страницы

  • Автор темы Roganik
  • 57
  • Обновлено
  • 16, May 2024
  • #1
У меня есть страница, на которой можно делать интересные вещи со сбором данных и выводом их в PDF-файл.

Данные хранятся в нашей базе данных и извлекаются в формате JSON.

Это работает, как и ожидалось, для 99% созданных нами форм, но у одного пользователя возникла проблема: страница просто постоянно перезагружалась.

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

У меня включено множество console.log(), и все выходные данные соответствуют ожиданиям.

Разве что страница перезагружается. У меня есть пауза в прослушивателе событий для набора «DOMWindow.beforeunload», и иногда он останавливается на этом, но стек вызовов просто показывает обработчик jquery, который также срабатывает.

Поскольку это происходит не для каждого загружаемого набора данных, я ожидаю, что проблема будет в данных, но тогда я также ожидаю, что выгрузка будет вызвана чем-то, что ему не нравится в коде, и чтобы это отобразилось в стек вызовов. Любые подсказки о том, как это отладить?

Roganik


Рег
01 Jan, 2011

Тем
1

Постов
1

Баллов
11
  • 19, May 2024
  • #2
Если проблема возникает только для определенных пользователей, а не для определенных наборов данных, как вы говорили ранее, возможно, проблема может быть связана с профилем этого пользователя. У меня было много проблем, когда ошибка возникала только у конкретного пользователя.

И все остальные пользователи работают нормально.

Вход в систему под этим пользователем в конечном итоге обнаружит ошибку.

Я помню самый первый проект с этой проблемой.

В имени пользователя указан недопустимый символ.

Заставить приложение вести себя ненормально только тогда, когда они вошли в систему.
 

Алексей Кашин


Рег
19 Feb, 2013

Тем
0

Постов
2

Баллов
2
  • 05, Jun 2024
  • #3
Есть jquery, bootstrap3, Google Analytics. Обычное действие заключается в том, что форма заполняется сохраненным JSON, чтобы пользователь мог обновить форму, сохранить изменения или запросить PDF-файл. При мгновенной перезагрузке страница становится непригодной для использования.
 

Евгений Мейран


Рег
10 Jan, 2013

Тем
0

Постов
3

Баллов
3
  • 06, Jun 2024
  • #4
К сожалению, я не могу предложить ничего лучшего, не отладив код лично. Но пробовали ли вы предотвратить обновление страницы, просто добавив оператор return в функцию window.onbeforeunload?
 

inga23


Рег
16 Aug, 2012

Тем
0

Постов
3

Баллов
3
  • 08, Jun 2024
  • #5
Боже мой, я только что нашел это, какой кошмар отладки.

@qwikad.com был на высоте, но я был слишком глубоко в коде, чтобы его увидеть.

В форме может быть кнопка для добавления дополнительных записей, и это кнопка, но не кнопка отправки, и есть прослушиватель, улавливающий клики, который делает все правильно.

НО

Когда эта форма добавляется с помощью javascript, обработчик не был обязательным, поэтому кнопка, которая не является кнопкой отправки, решила быть кнопкой отправки.

Добавьте слушателя и вуаля, все работает!
 

tonique


Рег
01 Jan, 2011

Тем
0

Постов
2

Баллов
2
  • 10, Jun 2024
  • #7
Спасибо @qwikad.com, было бы здорово!

Когда у меня установлен флажок «Пауза при обнаружении исключений», я вижу стек внутренних ошибок jQuery, связанных с querySelectorAll, и путь вверх по стеку вызовов — это .parseHTML или маски ux, календари и т. д., но я также получаю ошибки от Google Analytics!

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

В большинстве случаев это все равно не кнопки... Я закомментировал маски и вижу, что не все запросы ajax были выполнены до выгрузки, включая один из двух вызовов Google Analytics. Я изменил $.parseHTML, чтобы использовать это без каких-либо улучшений:
 var parseHTML = function(str) {

var tmp = document.implementation.createHTMLDocument();

tmp.body.innerHTML = str;

return tmp.body.children;
};
Код (JavaScript): Сейчас 2 часа ночи, пора спать.
 

alina9691


Рег
20 Apr, 2013

Тем
2

Постов
5

Баллов
25
Тем
49554
Комментарии
57426
Опыт
552966

Интересно