2016-11-26 6 views
3

Webアプリケーションにはデータテーブルがあります。これらのデータテーブルは、ajaxリクエストによって自動的に更新されます。そこで私たちは5秒ごとにajaxリクエストをサーバーに送ります。その結果、要求が非常に多く帯域幅が無駄になります。私は、そこにデータベースの変更だけがあるデータテーブルを更新するオプションがあるかどうかを知りたいです。新しいレコードがデータベースに追加されると、自動的にリクエストを生成し、クライアントWebページを更新します。 私の現在のコードは以下の通りです。私たちのサーバー側の言語はPHPであり、データベースはmysqlです。毎回リクエストをサーバーに送信せずにWebページを更新する

<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

Webソケットを調べる – nu11p01n73R

答えて

1

(これを始めるには基本的な理論があります):あなたが探しているコンセプトは、Comet、具体的にはHTTP server-side pushと呼ばれています。また、あなたのケースでは長いポーリングが必要です(サーバーのプッシュが必要ですが、実際には可能ではありませんが、長いポーリングの「テクニック」はサーバーが必要とするプッシュをエミュレートする役目を果たします)クライアントブラウザへの警告)

あなたがPHPを実行しているとして、私はこの答えはあなたの特定のケースのために非常に適切な指導与え言うと思います:運のベスト

Ajax push system

をあなたの道を見つけることで

1

**あなたは見つけるsocket.ioを使用して行って更新するとき、イベントを発すると、クライアント側でそれを得ることができ、よりhttp://socket.io/

1

ウェブソケット、

ロングポーリング

サーバーで - イベントの内容

私にとって、ロングポーリングは、どこでも動作するので、ロングポーリングが好きです。

関連する問題