Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.12.2014, 22:56
Кандидат Javascript-наук
Отправить личное сообщение для vuler Посмотреть профиль Найти все сообщения от vuler
 
Регистрация: 16.02.2012
Сообщений: 109

Ошибка при двух одновременных ajax запросах.
Добрый день.
Не могу понять как можно исправить данную ошибку. Оба запроса работают идеально по отдельности, но при одновременном вызове дается сбой.
Первый запрос - обновление чата каждые N секунд. Пускается в цикле.
function refresh_chat(){
	clearTimeout(refresh_time);
	block=$('.mini_chat');
	room=block.find('.js_room').val();
	last_id=block.find('.msg:last').attr('msg_id');
	if (full_null(last_id)) last_id=1;
	
	$.ajax({
		  type: 'POST',	
		  dataType: 'json',
		  url:"../php_scripts/chat_tools.php",
		  context:this,
		  data:({last_id:last_id,room:room, task:"chat_refresh"}),
		  success: function(data){
				block=$('.mini_chat');
				if (data.body!=""){
					msg_block=block.find('.msg_block');
					scroll=scroll_check_end_position(msg_block);
					msg_block.append_fadeIn($(data.body));
					if (scroll==true)
						scroll_to_end(msg_block);
				}
				room_block=block.find('.js_room');
				console.log(block);
				patern=/[(][0-9]+[)]/;
				for (var i in data.online) {
				//alert(i);
				select_block=room_block.find('[value="'+i+'"]');
				//alert(select_block.length);
				str=select_block.html().replace(patern,'('+data.online[i]+')');
				select_block.html(str);
				}
				//Обновляем онлайн комнат.
				//chat_room_refresh(block,data);
				refresh_time=setTimeout(refresh_chat, CHAT_REF_TIME);	
		  }
	})
}

Второй запрос - выбор категории новостей по группам.
function news_change_block(){
	new_block=$(this).val();
	cur_select=$(this).attr('block');
	if (cur_select=='company') cur_select=1;
	if (cur_select=='block') cur_select=0;
	block=$(this).closest('.full_news_block');
	bloking_elem(block,0.2,'loading');
	href=parseURL(document.location.href);
	href.data.where=obj_to_arr(href.data.where);
	href.data.where[cur_select][1]=new_block;
	if (cur_select==0) href.data.where[1][1]="";
	
	href.data.cp=1;
	new_href=href.link+'?'+serialize(href.data)
	history.pushState(null, null, new_href);
	
	$.ajax({ type: 'POST',dataType: 'json', url:"../php_scripts/catalogs_tools.php",
			data:({href:new_href,task:"news_refresh_full_news_block"}),context: block,
			complete: function(){unbloking_elem(block);},
			success: function(data){
					block.html($(data.news_block).unwrap());
			}})
	
	
	



}


$(document).ready(function() {




$('.news_mini_block').on('change','.js_news_block_select',news_select_company);
$('.full_news_block').on('change','.js_block_selector',news_change_block);


})

Ошибку выдает код чата(1-й) на строке.
room_block=block.find('.js_room');
Тут с block - все нормально, но вот room_block уже левый.
Сама ошибка:

TypeError: select_block.html(...) is undefined
str=select_block.html().replace(patern,'('+data.on line[i]+')');

Может кто сталкивался с подобным? и какие пути решения существуют?
Ответить с цитированием
  #2 (permalink)  
Старый 12.12.2014, 01:05
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

Сообщение от vuler Посмотреть сообщение
Может кто сталкивался с подобным? и какие пути решения существуют?
Существует var перед локальными переменными.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
При каком объеме вызова AJAX появляется задержка? hoax AJAX и COMET 1 14.08.2014 02:48
Ошибка “define is not defined” при запуске Istanbul TorchTT Общие вопросы Javascript 0 26.06.2014 15:38
Ошибка при добавлении обработчика к событию Riim Events/DOM/Window 32 19.01.2010 14:17
При наборе адреса с www не работает AJAX (JQuery)! madmis AJAX и COMET 3 23.11.2009 19:03
Кодировка при использовании Ajax Nichloas AJAX и COMET 9 17.09.2009 16:06