【问题标题】:ajax for displaying database information用于显示数据库信息的ajax
【发布时间】:2012-09-01 04:54:39
【问题描述】:

我有一个用于聊天的脚本,使用 Ajax,

我想做一个监控脚本,以便管理员查看用户之间的所有交流。

问题是我没有找到任何脚本来解释如何在不重新加载页面的情况下从数据库接收数据。

如果有人能帮我找到那个脚本或给我一个构建它的教程,我会很高兴。

接受我最大的尊重。

亲切的问候。

SP。

【问题讨论】:

    标签: php ajax database monitoring


    【解决方案1】:

    您正在使用 ajax.. ajax 的整个概念不必重新加载页面...

    完成这项工作的最佳工具是:

    • 网络套接字。更少的开销。 2路通讯。缺点:难以实现且不能跨浏览器
    • 服务器发送的事件。更少的开销。 1路通讯,无重复请求。缺点:不能跨浏览器
    • 只是普通的 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

    【讨论】:

      猜你喜欢
      • 2012-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-16
      相关资源
      最近更新 更多