小编har*_*ije的帖子

c atoi()for linux上的宽字符?

Linux上的广泛字符是否等同于atoi()?我可以找到MS(wtoi)的东西,但我可以在标准的Linux lib中找到任何东西.

c linux atoi

5
推荐指数
2
解决办法
5739
查看次数

使用会话变量时,Ajax请求之后会有数百个Apache进程挂起

在浏览器加载来自Apache服务器的PHP网页后,客户端javascript每5秒向PHP更新脚本发送一次AJAX请求.用JSON编码的AJAX响应可能非常大,所以我想简单地发送空数组'[]',如果自上一个AJAX请求以来没有变化,或者整个数组包含各种JSON对象,如果有的话自上次AJAX请求以来的更改.

要实现发送'[]'或完整数组,我正在使用会话变量.我的更新脚本如下所示:

<?php
session_start();
$output = '[]'; // server is running PHP 5.1 so can't use built in JSON encode
// code here queries a database and updates $output based on the query result
if (isset($_SESSION['previous_output'])) {
    if ($_SESSION['previous_output'] == $output) {
        echo '[]';
    } else {
        $_SESSION['previous_output'] = $output;
        echo $output;
    }
}
?>
Run Code Online (Sandbox Code Playgroud)

在实现上述脚本之后,Web服务器管理员注意到"太多"httpd进程被创建并闲置,最终使服务器停止运行.

当我删除涉及会话变量的代码时,一些httpd进程仍然存在,但"backlog"并没有那么糟糕,并且最终在对服务器产生明显影响之前进程消失.

Web服务器使用频率不高,可能随时为6个"访问者"提供服务.执行5秒AJAX请求的网页是"受保护的",这意味着一次只有一个管理员用户可以访问它.

我在PHP MySQLi Singleton上发现了另一篇关于Ajax-Requests的帖子,结束了许多听起来相似的过程,它引用了AJAX Push Engine(APE)项目,我想最终进一步调查.但是,我目前正在按时间和资源(例如无法设置APE服务器......),所以我很遗憾可以做些什么.

有关如何执行5秒AJAX请求而不会对服务器性能产生负面影响的任何建议?为什么使用会话变量会产生如此显着的差异?

php apache ajax

5
推荐指数
1
解决办法
1573
查看次数

标签 统计

ajax ×1

apache ×1

atoi ×1

c ×1

linux ×1

php ×1