在我们的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 :(得分:1)
**你可以使用socket.io并在更新完成后发出一个事件并在客户端获取它在http://socket.io/找到更多信息
答案 1 :(得分:1)
Web Socket,
长轮询
服务器发送的事件
至于我,我更喜欢Long Polling,因为它适用于ajax的所有工作。
答案 2 :(得分:1)
(这里只是一些基本理论让你开始):你正在寻找的概念被称为Comet,更具体地说是HTTP server-side push的概念。此外,在您的情况下需要长轮询(您需要服务器推送,但在您的情况下实际上是不可能的。但是,长轮询'技术'将用于模拟您需要服务器提供的推送警告客户端浏览器)
当你运行PHP时,我会说这个答案为你的特定情况提供了非常合适的指导:
祝你好运