【问题标题】:automatically change an html item when something changes in the database当数据库中发生更改时自动更改 html 项
【发布时间】:2011-08-03 11:39:41
【问题描述】:

我有这个代码:

$resource=mysql_query("SELECT * FROM messages WHERE user='$id'");
$num=mysql_num_rows($resource);

if ($num==0) echo '<li><a style="color:red">messages (0)</a></li>';
else echo '<li><a style="color:blue">messages ('.$num.')</a></li>';

它搜索数据库,如果找到用户的新消息,它会更改字体颜色,显示未读消息的数量。问题是必须先刷新页面,这不是自动发生的。

很遗憾,自动刷新不是一个选项。
我可以使用 AJAX 吗? perl 有什么好处吗?

谢谢

【问题讨论】:

    标签: php mysql sql ajax


    【解决方案1】:

    您可以使用setInterval()setTimeout() 定期调用AJAX function 来调用您的服务器

    【讨论】:

    • 回答@jmax。我熟悉setTimeout。这不会减慢整个事情的速度吗?我不知道,我只是问问
    • 取决于您想要刷新的频率,但 每个 javascript 都会减慢计算机速度:)。实际上,我更想知道您的服务器和数据库负载(取决于您将拥有的用户数量)
    • 到@jmax,频率约为 1 秒,同时执行 3 个 AJAX 函数。我开始认为它对服务器来说太重了。我没有任何经验,所以我不知道这些东西的局限性
    • 我会说这取决于您的服务器以及通过请求执行的代码的权重。您可以就 Stackoverflow 的另一个主题提出问题,因为我相信一些专家会对这个主题有很多话要说
    猜你喜欢
    • 1970-01-01
    • 2020-11-19
    • 2016-08-12
    • 1970-01-01
    • 2012-02-12
    • 2017-08-12
    • 2011-05-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多