отправить бесконечный цикл в window.onload - PullRequest
0 голосов
/ 28 апреля 2011

У меня есть проблема, из-за которой иногда, когда пользователь открывает страницу, он, по-видимому, мерцает и изменяет свой размер. Посмотрите журнал, кажется, что отправка вызывается несколько раз, хотя я не могу быть уверен на 100%, так как не могу воспроизвести это в моей собственной среде.

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

Редактировать: Кажется, что страница .net продолжает обслуживать страницу, и последующее submit () вызывается при событии onload, но никогда не возвращается на сервер. Эта ошибка возникает на одной машине, но не на другой идентичной машине. Интересно, может ли это быть проблемой балансировки нагрузки?

Редактировать: Мы наконец-то смогли воспроизвести эту ошибку. Это связано с прохождением балансировки нагрузки, но до сих пор не знаю, в чем проблема. Эта проблема также иногда возникает, и если она возникает, если вы закрываете IE и снова открываете его, у него есть шанс исправить себя.

window.onload = function () {
        if (document.getElementById("hfPostBack").value != "true") {
            if (confirm('hfPostBackは:' + document.getElementById("hfPostBack").value + 'です.続行します')) {
                document.getElementById("hfPostBack").value = "true";
                document.forms[0].submit();
            }
        } else {
            alert('hfPostBackは:' + document.getElementById("hfPostBack").value + 'です');
        }
    }

Ответы [ 2 ]

2 голосов
/ 28 апреля 2011
document.forms[0].submit();

Если форма, которую отправляет код, имеет действие с той же страницей, на которой находится форма, то это вызовет бесконечный цикл. (Load-Submit-Load-Submit ...)

0 голосов
/ 11 мая 2011

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

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

...