【发布时间】:2012-09-01 04:54:39
【问题描述】:
我有一个用于聊天的脚本,使用 Ajax,
我想做一个监控脚本,以便管理员查看用户之间的所有交流。
问题是我没有找到任何脚本来解释如何在不重新加载页面的情况下从数据库接收数据。
如果有人能帮我找到那个脚本或给我一个构建它的教程,我会很高兴。
接受我最大的尊重。
亲切的问候。
SP。
【问题讨论】:
标签: php ajax database monitoring
我有一个用于聊天的脚本,使用 Ajax,
我想做一个监控脚本,以便管理员查看用户之间的所有交流。
问题是我没有找到任何脚本来解释如何在不重新加载页面的情况下从数据库接收数据。
如果有人能帮我找到那个脚本或给我一个构建它的教程,我会很高兴。
接受我最大的尊重。
亲切的问候。
SP。
【问题讨论】:
标签: php ajax database monitoring
您正在使用 ajax.. ajax 的整个概念不必重新加载页面...
完成这项工作的最佳工具是:
Socket.io(为 nodeJS 编写)可能是最适合这项工作的。它为您利用正确的传输方式(websockets、longpolling、服务器发送事件、flashsockets、ajax 轮询),并为您提供最佳性能。
这里有几个 php js 实现示例:
使用服务器发送的 DOM 事件 (not cross browser): +/- 每 3 秒更新一次
//javascript:
var source = new EventSource('updates.php');
source.onmessage = function (event) {
console.log(event.data);
};
//php server side:
<?php
header("Content-Type: text/event-stream\n\n");
//..perform queries and put it in $data..
echo "data: " . json_encode($data) . "\n";
?>
使用jQuery ajax请求:每1000ms发送一个请求
//javascript:
var interval_id = setInterval(function(){
$.ajax({
type: "POST",
url: "updates.php",
success: function(data){
console.log("Data: ", data);
}
});
}, 1000); //last param is the interval time in ms
//php server side:
<?php
//..perform queries and put it in $data..
echo json_encode($data) . "\n";
?>
使用 phpWebsockets:lib + codesample
【讨论】: