Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript在重试/刷新时中止POST请求(CPU使用率高)_Javascript_Php_Ajax_Apache_Cpu - Fatal编程技术网

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

Javascript在重试/刷新时中止POST请求(CPU使用率高),javascript,php,ajax,apache,cpu,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) {

最近,我的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秒后没有响应/结果,我看到一条消息,说如果这需要太长时间,请刷新。在刷新页面后,用户再次尝试向file.php发送post请求,而旧的请求可能仍在运行-再次导致CPU使用率较高,我想这就是发生的情况,如果我错了,请纠正我,因为我是新使用此服务器的人

理由:

我这么说是因为在我的网站上,可能会说只有12个人在线,可能有12个人发送post请求,但是当我在PuTTY上运行top命令查看当前正在运行的进程时,它显示有近30-40多个进程正在运行,有些进程需要17分钟

那么,有没有一种方法可以在刷新时中止请求(如果请求仍在进行),或者在再次单击按钮时中止请求(如果请求仍在进行)?事实上,如果我的假设,特别是假设2是正确的,有人能确认或否认吗?如果这些确实是导致高CPU的原因?此外,如果任何人有一个更有效的方式,我可以继续发送这些请求的想法,将不胜感激

编辑1:


我可以解决我第一个假设中提到的可能问题。然而,有人能证实或否认我的第二个假设是正确的吗?

。。。或者点击按钮。。。单击按钮后立即禁用该按钮。@afaolek是的,这是我的第一个想法。我会在file.php周围放置尽可能多的锁,以便每次只发生一个请求。刷新页面以发送第二个请求时,文件进程绝对仍在运行。当客户端刷新脚本时,没有合理的方法可以终止服务器上的PHP进程。首先纠正这个问题:有时候PHP文件需要很长时间响应,我的意思是很长时间才能响应,或者有时候根本没有响应。顺便问一句:为什么不正常?