2014-07-25 28 views
0

我有一個PHP頁面,其中包含一個將數據從MySQL數據庫中提取出來的表格。該數據庫被許多用戶使用,通過更新/編輯或刪除操作,因此用戶在使用該頁面時使用表格的用戶很難使用它在數據庫表上更改/更新/刪除時觸發的jQuery事件

現在,用戶必須刷新頁面才能看到已做出更改,但刷新頁面將加載所有應用程序,而不僅僅是表格。我可以在特定的時間間隔刷新表,但我正在嘗試進行響應式刷新。目標是僅當數據庫中的表已被修改時才刷新它。 因此,我使用jQuery setinterval和ajax來測試表是否已在最近30-60秒內更新過,但我仍然認爲這不是最好的方法。 有人能想出一個更好的和有用的ideea?

MySQL查詢是:

SELECT UPDATE_TIME 
FROM information_schema.tables 
WHERE TABLE_SCHEMA = 'shopper' 
    AND TABLE_NAME = 'sh_partners' 

而jQuery的定時器:

setInterval("updateContent();", 5000); 
    function updateContent() 
    { 
     $.ajax({ 
      url: 'view/ajax/ajax.quickview.php', 
      type: 'post', 
      dataType: 'json', 
      beforeSend: function() { 
       $("#small tbody").html('<span class="wait">&nbsp;<img src="<?= DIR_MEDIA;?>img/ajax_loader.gif" alt="" /></span>'); 
      }, 
      complete: function() { 
      },         
      success: function(json) { 
       refreshTable(); 
      }       
     });             
    } 

回答

0

HTTP通常涉及通信的請求 - 響應類型的 - 這意味着你將不得不輪詢服務器,如你在想。這聽起來像你想要做的是服務器推送到客戶端,這將需要像websockets的東西。

這裏的維基百科頁面:

http://en.wikipedia.org/wiki/WebSocket

一些更多的閱讀:

http://code.tutsplus.com/tutorials/start-using-html5-websockets-today--net-13270

+0

可以將它使用PHP來實現? – rosuandreimihai

+0

我不積極在PHP中開發,但是對「PHP websockets」的谷歌搜索似乎有很多有前途的命中。 –

+0

這就是我現在正在做的,我也讀了關於「彗星」作爲一種方法,使用推技術 – rosuandreimihai