php - 如何在用户查看页面时更新页面?
问题描述
我有一个包含特定值的数据库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 值改变时。
解决方案
您可以使用 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 代码。
推荐阅读
- c# - 自托管 Web API
- java - 如何在redis中存储spring session
- python - 如何在不重新加载 Django 页面的情况下选择性地处理大型数据集的一部分?
- android - 无法在 Android Pie 的键盘视图中显示弹出窗口
- mysql - 在 Shinyapp 上使用多个文本字符串查询 Mysql
- c++ - enable_if + is_same + constexpr 函数使 MSVC 失败(但在 Clang、GCC 中运行良好)
- amazon-athena - Aws Athena:如何从失败的 Start-Query-Execution 中获取 RequestID
- c# - 使用实体框架将记录添加到内存优化表
- python - 访问配置列表元素的前缀以从字典中获取值
- html - css网格无法在下一行显示数据