2016-11-26 20 views
3

在我们的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> 
+0

看看网络套接字 – nu11p01n73R

回答

1

(这里有一些基本的理论来帮助你开始):你正在寻找的概念叫Comet,更具体地说是HTTP server-side push的想法。另外,在你的情况下,长轮询是必要的(你需要一个服务器推送,但在你的情况下,这实际上是不可能的。但是,长轮询'技术'将用来模拟服务器需要的推送该警告客户端浏览器)

当你运行PHP的,我会说这个答案让你的具体情况非常适当的指导:

Ajax push system

祝您好运在寻找你​​的方式

1

网络插座,

长轮询

服务器 - 发送活动

至于我,我宁愿长轮询,因为它适用于无处不在的ajax作品。

相关问题