【问题标题】:jQuery update div the moment a table is updated更新表格时jQuery更新div
【发布时间】:2011-11-28 01:57:46
【问题描述】:

我正在尝试找出一种方法让 jQuery 在更新 mysql 中的表时更新 div。我花了很多时间在网上寻找答案,但到目前为止,一无所获。谁能帮我解决这个问题?

【问题讨论】:

  • 这可能非常复杂或相当简单,具体取决于您更新数据库的方式和位置,我们可以查看您的一些代码吗?
  • @amosrivera - 我也是这么想的。
  • 您好,感谢您的快速回复!不幸的是,我的代码因沮丧而被删除,但是,我可以向您详细说明我打算做什么。一切都会通过用户的活动自动更新。例如,如果有人在帖子上添加评论,该人将通过 mysql 表获得通知(我创建了一个名为通知的表)。

标签: php jquery mysql ajax


【解决方案1】:

您必须每隔(几)秒通过 ajax 和 php 轮询数据库并检查数据是否已更改。如果是这样,请更新 div。
我认为没有办法检测数据库更新的确切时间。

【讨论】:

  • 我之前做过类似的事情,我会让 div 每 5 秒刷新一次,当表格更新时,div 也会更新。我不是很喜欢它,因为它经常在服务器端进行活动,这可能是有问题的,或者我可以想象。
  • 好吧,数据库在服务器上,所以如果你想知道它在做什么,你必须保持与它的通信。服务器无法与您的网页对话,它只能通过一种方式。
  • 我也很确定 StackOverflow 在您有问题时会检查新答案。 Gmail 和 HuffingtonPost 等其他网站也使用该技术检查新数据,因此这是一种非常常见的做法,只要您保持来回传输的数据量较小,您就不必害怕。跨度>
【解决方案2】:

那么您可能应该采取的步骤是:

有一段 AJAX 代码查询服务器的更改(如行数更改或类似的东西)。使用 jQuery 你可以做到这一点:

function checkUpdates()
{
    $.ajax({
        type: "POST",
        url: 'hasDataChanged.php',   // a webservice or other URL that queries the database
        data: {},
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(data) {
            // return a JSON string like { "hasChanged" : "true" } or something
            if (data.hasChanged) {
                 // data has changed, do something
            }
        }
     });
}

然后您可以使用 Javascript 方法setInterval 每隔几秒调用一次代码。立即做是不现实的。

$(document).ready(function() {
    setInterval("checkUpdates()", 3000);  // Calls the function every 3 seconds
});

【讨论】:

  • 你知道,我没有成功的是从 AJAX 调用中获得返回。你能简单地给我解释一下吗?我尝试在 jQuery 网站上阅读它,但它并没有以简单的方式说明它。我在 PHP 文件中做什么才能得到结果?提前致谢。
  • 现在您要问一个非常笼统的常见问题。我认为你需要阅读一些关于 AJAX、jQuery 和 PHP 的初学者教程。如果您甚至对基本的 AJAX 请求都不满意,那么编写一个轮询应用程序会让您不知所措。尝试阅读一些关于这个主题的教程。
【解决方案3】:

关于投票的有用链接。它试图让服务器向浏览器发送数据:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多