WordPress ajax调用是递归调用的

时间:2015-02-24 01:53:58

标签: php jquery ajax 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秒不调用该功能。代码每秒钟一次又一次地调用,因此我的托管服务提供商暂停了整个网站。

1 个答案:

答案 0 :(得分: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);