Добрый день.
Написал ф-цию для много поточного ajax запроса. (+jquery)
Проблема в том что ie 9 (версии ниже не проверял) позволяет только 2 потока ... это видно т.к. каждые 5 сек в блок див с id="resa" должно появляться одновременно кол-во записей разными кол-во потоков т.е. 5, в опере и др. браузерах все нормально, а вот ie больше двух потоков одновременно не дает ...
Как быть? может можно как-то во обхитрить? во фремы засунуть?
Вот код:
ajax_stream=0; // глобальная переменная показывает кол-во поток сейчас работает
qrt=new Array('q=1263', 'q=ert', 'q=12ert3', 'q=erter7tert', 'q=er77tert', 'q=e4444rtert', 'q=12werwer3', 'q=12sdfsdf3', 'q=1werwer23', 'q=12sdfsdf3', 'q=12werwer3', 'q=1sdfsdf23', 'q=12werwer3', 'q=12fsdf3', 'q=12qweqwe3', 'q=12werwer3', 'q=dfgdfg', 'q=ertreffg', 'q=1tttt23', 'q=ttt', 'q=ertertt', 'q=ertert', 'q=ertert', 'q=ertert');
stream_ajax(5, 'test.php', qrt, function(data){
$('#resa').html($('#resa').html()+"<br>"+data);
//alert(ajax_stream);
});
function stream_ajax(streams, to, dataq, func, datat) //streams - кол-во потоков. dataq - данные посылаемые серверу (массив)
{
if(streams>10) return -1;
if(!datat) datat='html';
function gos(to, dataq, func, datat)
{
if(!dataq.length)
{
--ajax_stream;
return;
}
$.ajax({
url : to,
data : dataq.shift(),
dataType : datat,
async : 1,
success : function(data)
{
func(data);
return gos(to, dataq, func, datat);
},
error : function(xhr, texts)
{
alert(texts);
return 0;
}
});
}
for(var i=0; i<streams; i++)
{
++ajax_stream;
gos(to, dataq, func, datat);
}
}
Запросы отправляю сюда "test.php"
sleep(5);
echo $_POST['q'];
Заранее спасибо