Показать сообщение отдельно
  #1 (permalink)  
Старый 29.07.2011, 12:27
Новичок на форуме
Отправить личное сообщение для bidloCoder Посмотреть профиль Найти все сообщения от bidloCoder
 
Регистрация: 03.06.2011
Сообщений: 7

Много поточный 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'];



Заранее спасибо
Ответить с цитированием