wordpress阿贾克斯不断失去联系

问题描述:

我很抱歉,我在WP和阿贾克斯是一个新手,但我需要你的帮助。我不确定这是一个错误还是只是我无法找到解决方案。wordpress阿贾克斯不断失去联系

我有以下情况。

我有一个插件,显示远程mysql服务器的某些数据。这些数据需要定期更新。

目前我已经通过AJAX,或多或少,这样实现的:

$.ajax({ 
    type : "POST", 
    url: cktn_ajax_object.ajax_url, 
    data: params, 
    dataType: "json", 
     success: function(response) { 
     << Update UI according to response >> 
    }, 
    error: function(request, status, err) { 
     console.debug("[AjaxOnTimer Error] status: " + status); 
    } 
}); 

其中$.ajax呼吁负责检索远程MySQL数据相关的PHP脚本。 PHP脚本的持续时间是可变的,根据它获取的数据量(比如,几秒到四五分钟之间)。

如果我测试整个我的本地机器上,没有问题。阿贾克斯呼吁适当和耐心等待PHP服务器(这是查询远程 MySQL服务器),并最终完成后,它更新我的用户界面的(缓慢)响应。

另一方面,当我在生产机器上安装插件时,事情并不按预期工作。在将我的ajax调用到PHP服务器后几秒钟,我在浏览器的控制台中收到以下错误:

无法加载资源:连接丢失。 ---> admin-ajax.php

和我的脚本失败让我没有其他的线索,在'ajax调用的'状态'参数字error

显然heartbeat.lock-post正在干扰我的ajax调用。 任何想法我做错了什么?

添加以下的functions.php关闭心跳:

add_action('init', 'my_deregister_heartbeat', 1); 
function my_deregister_heartbeat() { 
    global $pagenow; 

    if ('post.php' != $pagenow && 'post-new.php' != $pagenow) 
     wp_deregister_script('heartbeat'); 
} 

并重新启动Apache。

+0

谢谢Sreekanth,但它不起作用。我已经尝试过了。 Heartbeat API负责处理帖子编辑锁,但WP的自动保存功能也会破坏我的脚本功能。我应该禁用自动保存吗? 显然,在我的(冗长的)ajax调用期间,每个**其他** WP的AJAX调用都会执行**。 –

不知道您的问题是否已解决。但是如果今天有人遇到同样的问题,我已经使用Heartbeat Control插件解决了这个问题:https://wordpress.org/plugins/heartbeat-control/