В IE я могу отправлять запросы на сервер максимум в 7 раз при использовании ajax - PullRequest
0 голосов
/ 30 сентября 2010

Я добавил ajax в веб-приложение с 7 тегами «select», в котором при выборе опции в следующие теги «select» будет добавлена ​​соответствующая информация.И некоторые из этих тегов могут также отображать другой набор переключателей или флажков.В целом, вы можете сделать более 10 запросов на сервер, пока не получите желаемый продукт.Все отлично работают в основных браузерах, кроме IE, где запросы к серверу ограничены 7 раз, и больше ничего не происходит, пока вы не обновите браузер для повторного запуска.Я даже пытался отключить кеш, но все же возникла та же проблема ...

Почему IE делает эту чепуху?

Это код ajax, который говорит сервер-клиент:*

function updateAvailableAttributes()
{
var xmlhttp;
var form = document.forms["orderDefinition"];
form.elements["formChangeRequest"].value = "true";
var processingMsgBox = $("#waitingMsgOverlay, #waitingMsgBox, #waitingMsg, #waitingMsgParag");
var map = document.getElementById("OrderMap");

if(window.XMLHttpRequest) 
{// code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp = new XMLHttpRequest();
}
else 
{// code for IE6 and below
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}

xmlhttp.onreadystatechange = function()
{
    switch(xmlhttp.readyState)
    {
        case 1:
            map.disableApplication();
            processingMsgBox.show();
            break;
        case 4:
            if(xmlhttp.status == 200)
            {
                $('#usercontent .sleeve .toprow').html(xmlhttp.responseText);
                applyValidation();
                browserScrollManagement();
                $("#toolpanel").height($("#orderMap").height());
                inputBtnHighlightSelection();
            }
            else
            {
                sessionTimedOut();
            }

            $("#toolpanel").height($("#orderMap").height());
            map.enableApplication();
            processingMsgBox.hide();
            break;          
    }
}

var parameters = $("form#orderDefinition").serialize();
xmlhttp.open("POST", "ajax/possibleValues.html", true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.setRequestHeader("Content-length", parameters.length);
xmlhttp.setRequestHeader("Cache-Control", "no-cache");
xmlhttp.setRequestHeader("Connection", "close");
xmlhttp.send(parameters);
}

1 Ответ

1 голос
/ 14 апреля 2012

Спецификация HTTP рекомендует, чтобы одновременных подключений к веб-серверу было ограничено.Предел ниже для IE7, чем для других браузеров. Измените реестр , чтобы увеличить его только для целей тестирования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...