我将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);
}
答案 0 :(得分:1)
HTTP规范建议必须限制对Web服务器的simultaneous connections。 IE7的限制低于其他浏览器的限制。 Modify the registry仅为了测试目的而增加它。