jquery - 當數據庫中的記錄更改時,如何不斷更新數據表,一個websockets或長輪詢實現



datatables long-polling (1)

我使用數據表作為我的網上應用程序的網格。 問題是,用戶必須刷新頁面總是從數據庫中獲取當前數據,有沒有辦法可以自動完成? 因為有多個應用程序寫入同一個表,並且webapp只是用於監視,但是如果用戶必須刷新頁面才能獲取當前數據,那麼它就會勝出。 這裡是我的初始化代碼:

  $('.{{datatable['class']}}').dataTable( {
                "sDom": 'T<"clear">lfrtip',
                "oTableTools": {
                    "sSwfPath": "includes/swf/copy_csv_xls_pdf.swf",                
                    "aButtons": [
                         { 
                             "sExtends":"copy",
                             "mColumns":[{{datatable['flds']}}]
                         },
                         {   
                             "sExtends":"csv",
                             "mColumns":[{{datatable['flds']}}]
                         },

                         {
                             "sExtends":"xls",
                             "mColumns":[{{datatable['flds']}}]
                         },                         
                         {
                            "sExtends": "pdf",
                            "mColumns":[{{datatable['flds']}}],
                            "sPdfOrientation": "landscape",
                            "sPdfMessage": "{{datatable['title']}}"
                         }
                    ]
                    },        
                "bProcessing": true,
                "bServerSide": true,
                "sAjaxSource": "{{datatable['source']}}",
                "aoColumns": [          
                        {% for column in 0..datatable['columns']-2 %}
                        null,
                        {% endfor %}
                        null
                ]

        });

有沒有一種方法可以更新自己每次發生什麼(UPDATE / INSERT / DELETE)數據源? 我已經實施了一個循環,丹尼建議,

var int=self.setInterval(function(){oTable.fnDraw();},1000);

但問題是,列表總是一個有趣的狀態,請參閱attatched圖像


您可以通過間隔定時器在循環中發生ajax請求,該定時器會檢查頁面上次接收到的內容是否有新數據。 你需要弄清楚你可以使用什麼來確定類似的記錄數量或一個專用的記錄,其中包含最後一次更新/添加/刪除的日期時間,如果日期時間較新,那麼數據最後一次抓取時再次更新。在頁面上,你可以記錄/更新JavaScript var中的最後一次數據更新的日期時間,以用於將來的所有檢查。





phpwebsocket