imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Веб-мастеру > Веб-программирование
Опции темы
Старый 21.11.2009, 23:26     # 1
beast_drc
Junior Member
 
Аватар для beast_drc
 
Регистрация: 06.10.2004
Адрес: Москва
Пол: Male
Сообщения: 74

beast_drc Нимб уже пробиваетсяbeast_drc Нимб уже пробивается
jQuery - очередь асинхронных запросов. как?

Привет!
Назрел вопрос: как организовать очередь асинхронных запросов?
Имеем список (ок. 150) элементов, чекбоксами отмесаются необходимые и загружаются.

Код:
$(document).ready(function(){              // по окончанию загрузки страницы
$('#load_selected').live('click',function(){      // Загрузка списка прайсов по клику.

var is_disable = false;
var my_o = $('#prices_for_load');
for (var i=0; i < $('#prices_for_load')[0].elements.length; i++) {

if($('#prices_for_load')[0].elements[i].type == "checkbox" && $('#prices_for_load')[0].elements[i].checked){

	$('#price_'+$('#prices_for_load')[0].elements[i].value ).html("<img src='/images/ajax.gif'>");
	//alert(i);
	//setTimeout("",3000);
	$.ajax({
	  async:false,	
	  url: '/test/autoload_handler.php?do=load_price_by_id&mode=ajax&id='+$('#prices_for_load')[0].elements[i].value,
	  dataType : "text",
	  success: function(data, textStatus) {
		$('#price_' + $('#prices_for_load')[0].elements[i].value ).html(data);
		$('#checkbox_' + i).css({display:"none"});
		$('#prices_for_load')[0].elements[i].checked=false;
		//alert(data);
	  }
	});

 }
    //alert('test');
}
//alert('test');
if(confirm("Загрузка прайс-листов закончена. Необходимо перезагрулить страницу \n Для просмотра результатов нажмите 'Отмета', затем презегрузите страницу вручную.")){
	window.location="/admin/index.php?mode=autoload";			    	
}
		    
		    //return is_disable;
	
});

});
В данном примере используется синхронный запрос, но он подвешивает-таки браузер..

Задача такая: Сделать запрос, и чтобы браузер оставался активным, но при этом чтобы до завершения предыдущего запроса новый не стартовал.
__________________
Supraвод
beast_drc вне форума  
Старый 25.11.2009, 00:40     # 2
ЕЖ
::VIP::
 
Регистрация: 19.03.2004
Сообщения: 1 329

ЕЖ Бог с наворотамиЕЖ Бог с наворотами
ЕЖ Бог с наворотамиЕЖ Бог с наворотами
beast_drc, есть готовые плагины для организации очереди ajax-запросов:
http://plugins.jquery.com/project/ajaxq
http://plugins.jquery.com/project/ajaxqueue
http://plugins.jquery.com/project/AjaxManager

добавлено через 8 минут
Кстати, раз уж использовать jQuery, думаю что вместо цикла for и if-а на проверку что элемент является чекнутым чекбоксом, можно написать просто один селектор, что-то типа:

$('#prices_for_load :checkbox:checked').each(...)

Точнее не скажу, т.к. не понятна разметка.
ЕЖ вне форума  

Опции темы

Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 23:09.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.