在数据库表上触发jQuery事件更改/更新/删除

时间:2014-07-25 18:57:31

标签: javascript php jquery mysql comet

我有一个PHP页面,其中包含一个从MySQL数据库中提取数据的表。许多用户通过更新/编辑或删除操作使用该数据库,因此使用上述页面中的表的用户很难使用它

目前,用户必须刷新页面以查看是否已进行更改,但刷新页面将加载所有应用程序而不仅仅是表格。我可以按特定间隔刷新表,但我正在尝试进行响应式刷新。目标是仅在修改数据库中的表时刷新它。 所以我使用jQuery setinterval和ajax来测试一个表是否在过去30-60秒内更新了,但我仍然不认为这是最好的方法。 有人能想出一个更好,更有用的想法吗?

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(); 
            }                           
        });                                                  
    }

1 个答案:

答案 0 :(得分:0)

HTTP通常涉及请求 - 响应类型的通信 - 这意味着您必须按照您的想法轮询服务器。听起来你想要做的就是让服务器推送到客户端,这需要像websockets这样的东西。

这是维基百科页面:

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

更多阅读:

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