我开发了一个 ajax 应用程序,其中每 5 秒调用一次服务器页面,用于从数据库中获取最新数据。
假设我server.php
从我的client.html
页面调用,每 5 秒获取一次响应。这是client.html中的示例代码:
$(document).ready(function() {
refresh_msg();
});
function refresh_msg()
{
setTimeout(update_msg, 5000);
}
function update_msg()
{
var url = "server.php";
var params = "task=update&id=12";
http.open("POST", url, true);
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.onreadystatechange = function() {
if(http.readyState == 4 && http.status == 200) {
var resp = http.responseText;
}
}
http.send(params);
setTimeout(update_msg, 5000);
}
现在在server.php文件中,我包含数据库文件 (database.php) 并为客户端请求提供服务。这是示例代码:
<?php
include_once 'database.php';
if(isset($_POST['task']) && isset($_POST['id']))
{
$sql = "select message from user_messages where id='".$_POST['id']."'";
$res = mysql_query($sql);
// send response
}
?>
最后这是我的database.php文件,其中包含数据库连接详细信息:
<?php
mysql_connect("localhost:3306","root","root");
mysql_select_db("my_database");
?>
现在看到的问题是,每 5 秒创建一个新的 mysql 连接(我看到在 Mysql Administrator > Server Connections 中创建了很多连接)。
我觉得这不是查询数据库的最佳方式。相反,我可以有一个 mysql 连接并将其用于来自客户端的所有后续 ajax 请求吗?