Много поточный ajax, даже ie 9 дурак
Добрый день.
Написал ф-цию для много поточного 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']; Заранее спасибо |
Попробуйте в IE8 и выше через XDomainRequest посылать запросы на разные домены.
|
Часовой пояс GMT +3, время: 21:29. |