首页 > 解决方案 > 如何在用户查看页面时更新页面?

问题描述

我有一个包含特定值的数据库yes,因此,如果管理员将该值更改为no,则如果有用户查看该页面,则元素将被更改。

因此,如果我在该页面中有此文本并且值为yes文本将是:

<p id="change">Yes, This text will be changed if the DB value is changed.</p>

如果值为 no,则文本将为:

<p id="change">No, This text will be changed if the DB value is changed.</p>

我正在使用 PHP 和 MYSQL,可以编写 SQL 语句以及 Ajax 请求。

我多次使用 Ajax,但是针对特定访问者或管理员更改了内容,如果他执行了操作。

但我不知道改变另一个用户的内容,当那个 DB 值改变时。

标签: phpmysqlsqlajaxwebsocket

解决方案


您可以使用 AJAX 每 x 秒检查一次数据库并相应地更新结果。

使用 AJAX 向站点的路径发送 GET 或 POST 请求,查询数据库后将返回 yes 或 no,结果您可以使用 JS 更新元素的内容p

我建议使用 memcache 或类似的数据库缓存,因为每隔几秒直接查询一次数据库效率不高,并且如果同时连接多个客户端会降低服务器性能。

Ajax 请求前端 GET 请求

$.ajax({
        url: "/ajax/backendprocessor.php?id_of_value=1",
        type: "get",
        success: function (response) {
               //check the response and update the element            

        }
    });

对于 backendprocessor.php,从 $_GET 变量中获取 id_of_value,然后查询数据库/缓存服务器并返回 YES 或 NO

因此,要每 15 秒运行一次代码,您可以在 jQuery 中执行此操作,

setInterval(getUpdate, 15000);

getUpdate 函数将包含 ajax 代码。


推荐阅读