我有一个聊天脚本,使用Ajax、
我想做一个监控脚本,以便管理员能够查看用户之间的所有交换。
问题是,我没有找到任何脚本来解释如何在不重新加载页面的情况下从数据库接收数据。
如果有人能帮我找到那个脚本,或者给我一个构建它的教程,我会很高兴。
接受我最大的尊重。
致以亲切的问候。
SP。
您正在使用ajax。。ajax的整个概念是不必重新加载页面。。。
这项工作最好的工具是:
- websockets。更少的开销。双向通信。缺点:更难实现,而且不能跨浏览器
- 服务器发送了事件。更少的开销。单向通信,无重复请求。缺点:不能跨浏览器
- 只是简单的ajax轮询。。。效率较低,开销较大,请求较多,但它可以在任何地方工作
Socket.io(为nodeJS编写)可能是最适合这份工作的。它为您利用了正确的传输(websockets、longpolling、服务器发送的事件、flashsockets、ajax轮询),并将为您提供最佳性能。
以下是几个php-js实现示例:
使用服务器发送的DOM事件(而不是跨浏览器):每隔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+代码样本