Javascript在重试/刷新时中止POST请求(高CPU使用率)

时间:2014-07-22 12:12:17

标签: javascript php ajax apache cpu

最近我的Apache服务器的CPU已达到100%(全天,即)。我想我已经找到了我的问题。

在页面上,用户可以单击按钮并向我服务器上的PHP文件发送POST请求。有时PHP文件需要很长时间(我的意思是非常长)才能回复,或者有时根本没有回复:

function buttonFunction() {
    $.post("http://ipaddress/core/file.php",{username:username, password:pword, coins:coins}, function(data) {
        // Stuff
    });
}

假设1:

我相信有时人们可能会再次单击此按钮(当它仍在尝试从前一次点击中获取file.php的结果/响应时),因此在Apache服务器上导致两个来自PHP的同时进程 - 导致更高的CPU使用率(我认为发生了什么事情,如果我错了,请纠正我,因为我对这个服务器的东西不熟悉)。

假设2:

可能导致高CPU使用率的另一件事(我相信)是用户在仍在尝试从file.php获取结果/响应时刷新页面。 12秒后(没有响应/结果),我会显示一条消息&#34;如果这需要太长时间,请刷新。&#34;在这种情况下(在刷新页面之后),用户再次尝试向file.php发送帖子请求,而旧的可能仍在运行 - 导致更高的CPU使用率(再次,我认为< / em>发生了什么,如果我错了,请纠正我,因为我对这个服务器的新手很不错。)

推理:

我这样说是因为在我的网站上可能会说只有12个人在线(可能有12个人发送帖子请求),但是当我在PuTTY上运行top命令时当前正在运行的进程是什么,它显示了近30-40个进程正在运行(有些进程只需 17分钟)。

那么,有没有办法让我可以在刷新时中断请求(如果它还在继续)或点击按钮(再次,如果请求仍在继续)? 事实上,如果我的假设(特别是假设2)是正确的,那么有人可以确认或否认 - 如果那些实际导致高CPU的话吗?此外,如果有人想要更高效的方式我可以解决这个问题(发送这些请求),我们将非常感激。

修改1:

我可以解决我的第一个假设中陈述的可能问题。但是,如果我的第二个假设是真的/有效的话,有人可以确认还是否认

0 个答案:

没有答案