我使用 php 和 ajax 进行了聊天,并且正在使用 while 循环检查数据库中的新消息。
这是检索消息的代码:
//retrive message
function update(){
$(document).ready(function(){
$.ajax({
async: true,
type: "POST",
url: "listen.php",
success: function(data){
$("#myp").before(data);
},
complete: function(){
window.setTimeout("update();",100);
}
});
});
};
//wating for new message
<?php
include_once("connect.php");
$type="";
while($type!=='n'){
usleep(1000);
$search=mysql_query("SELECT * from chat ORDER BY id DESC LIMIT 1");
$row=mysql_fetch_assoc($search);
$type=$row['type'];
$id=$row['id'];
}
echo $row['message'] . "<br/>";
mysql_query("UPDATE chat SET type='o' WHERE id=$id");
?>
现在这工作正常,php 文件不断检查是否有任何新消息,更新功能在页面加载时启动并等待响应。但它有效吗?如果我要在网站上使用它,恐怕会因为 while 循环而对服务器造成太大压力。有谁知道一种方法,使while循环对服务器更友好?