2015-02-24 4 views
1

Я использую эту функцию для запуска кода АЯКСWordPress Ajax вызова вызывается рекурсивно

add_action('wp_ajax_my_action', array(&$this,'ChatAjax')); 

Этот код должен быть вызван каждые 30 сек, я использую этот код

function CheckRequests(){ 
    jQuery.ajax({ 
    url : Chat.ajaxurl, 
    type:'POST', 
    data: 'action=my_action', 
    success: function(data){jQuery('#LiveChat').html(data);} 
    }); 
    window.setInterval(function(){CheckRequests()}, 30000); 
} 

Он работает более чем штраф, за исключением того, что функция не вызывается каждые 30 секунд. Код вызывается каждую секунду, снова и снова, поэтому весь веб-сайт был приостановлен моим хостинг-провайдером.

ответ

2

Это потому, что код для настройки обратного вызова находится внутри области функций, и это вызывает рекурсивный вызов.

function CheckRequests(){ 
    jQuery.ajax({ 
     url : Chat.ajaxurl, 
     type:'POST', 
     data: 'action=my_action', 
     success: function(data){jQuery('#LiveChat').html(data);} 
    }); 
}//close the bracket here 
//call should be outside the function scope 
window.setInterval(CheckRequests, 30000); 
+0

Deni вы просто сохранить мой день: D Большое спасибо Решение было передо мной все время: D –

+0

Да ваше решение было полезно, спасибо большое Deni –

Смежные вопросы