更新网页而不是每次都向服务器发送请求

时间:2016-11-26 06:24:19

标签: javascript php mysql

在我们的Web应用程序中有数据表。这些数据表通过ajax请求自动更新。所以我们每5秒向服务器发送一次ajax请求。结果,如此多的请求和如此多的带宽被浪费了。我想知道是否有更新数据表的选项只有数据库中的更改。将新记录添加到数据库时,会自动生成请求并更新客户端网页。 我目前的代码如下。我们的服务器端语言是php,数据库是mysql。

<script>

    var dtable= $('#ajax_load_table').DataTable( {
        "ajax": '<?php echo base_url(); ?>dashboard/jobs_approved_json_refresh',
        columns: [
            { data: "job_code" },
            { data: "cus_name" },
            { data: "priority" },            
            { data: "department" },
            { data: {
                _:    "last_action.display",
                sort: "last_action.s_order"
            } },
            { data: "status" },
            { data: "action","width": "30%" }
        ],
        "order": []
    } );

 window.setInterval(function () {
    dtable.ajax.reload();
 }, 5000);
</script>

3 个答案:

答案 0 :(得分:1)

**你可以使用socket.io并在更新完成后发出一个事件并在客户端获取它在http://socket.io/找到更多信息

答案 1 :(得分:1)

Web Socket,

长轮询

服务器发送的事件

至于我,我更喜欢Long Polling,因为它适用于ajax的所有工作。

答案 2 :(得分:1)

(这里只是一些基本理论让你开始):你正在寻找的概念被称为Comet,更具体地说是HTTP server-side push的概念。此外,在您的情况下需要长轮询(您需要服务器推送,但在您的情况下实际上是不可能的。但是,长轮询'技术'将用于模拟您需要服务器提供的推送警告客户端浏览器)

当你运行PHP时,我会说这个答案为你的特定情况提供了非常合适的指导:

  

Ajax push system

祝你好运