我正在为当地一家供暖、通风和空调(HVAC 公司)建立一个门户网站,将工作分配给他们的技术人员。
它使用大量 Jquery ajax ($.post) 来查询不同类型的数据,因为他们将有多个人积极查看工作(技术人员和管理人员)。
这样的 ajax 查询给我带来了一个奇怪的问题。它显示作业的当前状态(已计划、正在进行、正在进行中等)。
更改后,它将其保存到数据库,ajax 查询它并将更新的版本放在页面上,但是当他们查看其他作业时,它会开始切换到所有访问过的作业的状态。
我让它每 5 秒查询一次数据库,每次查询时,它都会在它们之间快速切换,停留几秒钟,然后切换回来(最初显示作业 1 的统计数据,快速切换到作业 2 的统计数据,然后切换到作业 3 )约3秒然后重新开始切换)。
这是我编写的一些代码。 JQuery 中列出的 PHP 变量在脚本的开头说明,因为它们也在其他区域中使用。我一直在用头撞键盘,但找不到任何问题。
JQuery
function updateStatus(){
var jobCode = null;
var jobCode = <?= (int)$jobCode; ?>;
var companyid = <?= (int)$companyID; ?>;
$.post("/config/ajax/autorun/updateStatus.php", {job_code: jobCode, company_id: companyid})
.done(function(data){
$(".status").html("Update Status - AJAX - JC-" + jobCode + " - PHP <?= (int)$jobCode; ?> - " + data);
});
}
$(document).ready(function(){
setInterval(updateStatus,5000);
});
PHP
include("../../databaseInfo.php");
$companyID = (int)$_POST['company_id'];
$jobCode = (int)$_POST['job_code'];
$sql = sprintf(
"SELECT stat_name FROM statuses INNER JOIN jobs ON jobs.job_status = statuses.stat_id WHERE jobs.job_company = %d AND jobs.job_code = %d",
$companyID,
$jobCode,
);
$result = $conn->query($sql);
$status = null;
if ($row = $result->fetch_assoc()) {
$status = explode(' ', $row['stat_name'], 2)[1] ?? null;
}
echo $status;
此外,这是一个5秒的视频,讲述正在发生的事情