【发布时间】:2011-08-25 17:15:19
【问题描述】:
所以我创建了一个与 jquery php 和 mysql 的聊天。它还使用 ajax。所以这里是代码
PHP进程页面:
$result = mysql_query("SELECT *
FROM messages
ORDER BY id DESC
LIMIT 30") or die(mysql_error());
while($row = mysql_fetch_array($result)) {
if($row['correct'] == 1) {
$correct = "<font color='green'>";
} else {
$correct = "<font color='red'>";
}
echo $correct;
echo $row['name']. ": ". $row['message'] . "</font>";
echo "<br />";
}
我在索引页面上的 jquery 是这样的
$(document).ready(function() {
$('form[name=answer]').submit(function() {
validate();
return false;
});
function validate() {
$.post("http://localhost:8888/school/procees.php",
{answer: $('input[name=answer]').val(),
questionid: $('input[name=questionid]').val(),
name: $('input[name=id]').val()}, 'json');
}
setInterval(function() {
$('#about').load('maketable.php');
}, 1000);
});
我知道运行检查然后将所有内容打印出来需要大量内存,我不知道如何以其他方式进行。欢迎对代码提出建议和批评。我该如何改进它?
【问题讨论】:
-
连续轮询和数据库不是处理这个问题的好方法。大多数像 FB 使用一种称为长轮询(又名 Comet)的技术。 en.wikipedia.org/wiki/Comet_(programming) 当 html5 被更广泛地实现时,还将支持套接字连接,这将是实现这一点的最终方式,因为不需要在数据库或其他数据源中保存任何内容。消息会进来并立即发回给每个订阅者。
标签: php jquery mysql ajax optimization