У меня постоянно возникает проблема с несколькими ajax-запросами, которые я, как правило, отправляю для получения данных для обновления различных компонентов веб-страницы.Я всегда использую свои пользовательские функции AJAX (см. Ниже) для выполнения вызовов AJAX.И я считаю, что запросы иногда сталкиваются.Я также проверяю, чтобы запросы отправлялись с интервалом в две секунды, надеясь, что они сериализуют способ отправки запросов.Тем не менее я нахожу, что это иногда сталкивается.Что я делаю неправильно?Или, скорее, какие изменения я могу внести в свои функции, чтобы они работали без проблем, в любое время?
Функции:
function get_xmlhttp_obj()
{
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp = new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
alert(invalidbrowser);
}
}
}
return xmlHttp;
}
function passUrl(url1)
{
url1 = url1+"&sid="+Math.random();
xmlHttp=get_xmlhttp_obj();
xmlHttp.onreadystatechange = function() { stateChanged(xmlHttp); };
xmlHttp.open("GET", url1, true);
xmlHttp.send(null);
}
function passposturl(url1,params)
{
xmlHttp=get_xmlhttp_obj();
xmlHttp.open("POST", url1, true);
xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlHttp.setRequestHeader("Content-length", params.length);
xmlHttp.setRequestHeader("Connection", "close");
xmlHttp.onreadystatechange = function() { stateChanged(xmlHttp); };
xml Http.send(params);
}
function stateChanged(xmlHttp)
{
if (xmlHttp.readyState == 1 || xmlHttp.readyState == 2 || xmlHttp.readyState == 3 || xmlHttp.readyState == 0)
{
// Wait state. I load loading text or image here
}
else if(xmlHttp.readyState == 4)
{
// catch the response and display in the specific container.
if(loadflag=="global_live_xjournal_feed")
{
document.getElementById("global_live_xjournal_feed").innerHTML=xmlHttp.responseText;
setTimeout("call_refresh_global_xjournal_feed", 5000);
}
}
}
function call_refresh_global_xjournal_feed(obj)
{
if(obj=="global_xjournal_feed")
{
var url = "ajax_activity_feed.php?id="+obj;
passUrl(url);
loadflag="global_live_xjournal_feed";
}
}