在IE中,我只能在使用ajax时向服务器发送最多7次请求

时间:2010-09-30 11:15:34

标签: ajax internet-explorer-7

我将ajax添加到带有7个“select”标签的Web应用程序中,其中选择一个选项将使用相关信息填充以下“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 个答案:

答案 0 :(得分:1)

HTTP规范建议必须限制对Web服务器的simultaneous connections。 IE7的限制低于其他浏览器的限制。 Modify the registry仅为了测试目的而增加它。