我正在使用此函数来运行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秒不调用该功能。代码每秒钟一次又一次地调用,因此我的托管服务提供商暂停了整个网站。
答案 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);