Опытный - Репутация: 26
- Webmoney BL:
? | Всем привет! Такая проблема возникла. При одновременном вызове двух разных аякс запросов - один запрос всегда ждет, когда другой запрос вернет результат. Т.е. если один запрос выполняется 10 секунд, а второй 1 секунду, то оба вернут свой результат через 10 секунд, а нужно, чтобы сначала вернул результат запрос в 1 секунду, а потом другой. Код вызова запросов стандартный:
Код: // Функция выполняет асинхронный запрос к странице.
function make_request(url, function_name, param)
{
if (!is_param(function_name))
function_name = 'set_request_result';
if (!is_param(param))
param = null;
var http_request = false;
if (window.XMLHttpRequest) // Mozilla, Safari, ...
{
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType)
http_request.overrideMimeType('text/xml');
}
else if (window.ActiveXObject) // IE
{
try
{
http_request = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
http_request = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
return false;
}
}
}
if (!http_request)
return false;
if (function_name != 'none')
http_request.onreadystatechange = function() { eval(function_name + '(http_request);') };
http_request.open('POST', url, true);
if (param)
http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
http_request.send(param);
return http_request;
}
// Функция возвращает истину, если пришел результат асинхронного запроса к странице.
function is_make_request(http_request)
{
try {return http_request.readyState == 4 && http_request.status == 200;} catch (e) {return false;}
}
// Функция возвращает результат асинхронного запроса к странице.
function get_make_request(http_request)
{
return http_request.responseText;
} |