gpt4 book ai didi

php - 当数据库中的特定数据发生更改时使用 php 显示通知

转载 作者:行者123 更新时间:2023-11-29 00:03:46 24 4
gpt4 key购买 nike

我想通知一个人我的数据库表中可用的工作数量。在一张表中,我列出了 8 个工作,他们有自己的工作能力。我使用 SELECT COUNT(*) AS jobs... 使用 PHP 查询完成了计数,并创建了这个 ajax 脚本,它显示了一个间隔的计数。

$(document).ready(function() {
$.ajaxSetup({ cache: false });
setInterval(function() {
$('#divToRefresh').load('notification.php'); //this contains the query
}, 30000);
});

但是,我不确定如何做到这一点,所以当用户看到通知警报时,他们将关闭它并且在有新的可用工作之前它不会再次出现。

我也无法在好的 ol google 上找到任何内容。

最佳答案

您的 jQuery 函数每 30 秒运行一次,从服务器轮询数据。 notification.php 返回预呈现的 HTML,其中包含(我假设除其他外)可用的作业数。

检查可用作业的数量并根据此显示通知:

setInterval(function() {
var oldNumberOfJobs = newNumberOfJobs = 0;
$('#divToRefresh').load('notification.php'); //this contains the query
newNumberOfJobs = $('#divWithJobsCount').text;

if (newNumberOfJobs > oldNumberOfJobs) {
// show notification to the user
}

oldNumberOfJobs = newNumberOfJobs;

}, 30000);

更具体地说(显示/隐藏通知),我需要查看您的 HTML。

这个解决方案感觉很笨重。整个预渲染的 HTML 被一次又一次地重新加载。更好的方法是只返回可用的作业数量,并且只使用 jQuery 更新该数量。

此外,返回最新的 job_id 以及可用的工作总数可能是个好主意。这样,您可以检查前端已存储的最新 job_id 是否与新收到的 job_id 匹配。只有当它们不匹配时,您才会更新计数器并显示新通知。

更新

Here is a jsfiddle.js这涵盖了你的情况。作业计数器是用当前分钟数模拟的。该函数每 15 秒检查一次分钟数是否已更改。一旦发生,就会显示警报通知(但仅当旧通知已关闭时)。

setInterval in jsfiddle is written using a mock object so that it is testable in the browser without AJAX requests. In your code use the following form:

setInterval(function() {
$.get('notification.php', checkJobsCounter); // returns jobs count in plain text
}, 30000);

关于php - 当数据库中的特定数据发生更改时使用 php 显示通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28465254/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com