Ошибка при двух одновременных 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]+')'); Может кто сталкивался с подобным? и какие пути решения существуют? |
Часовой пояс GMT +3, время: 06:08. |