gpt4 book ai didi

javascript - 仅在数据库中设置一次

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

我正在使用 setInterval 来检测从 PLC(可编程逻辑 Controller )获得的值,当它为 1 时,它会执行一个 PHP 页面,将数据插入到我的 MYSQL 数据库中。

因此,当我按住按钮超过 1 秒时,它会多次设置 DB 值。

您可以在下面找到我的代码:

var Axo800RstBtn;

setInterval(function()
{
Axo800RstBtn = document.getElementById('Axo800BtnStatus').innerHTML;
var BatchUnits1 = document.getElementById('Axo800BatchProduction').innerHTML;

if(Axo800RstBtn == 1)
{
$.ajax({
method: "POST",
url: "SetBatchProductionInDB.php",
data: {
machineNumber: 1,
actualProduction: BatchUnits1
}
})
.done(function(msg)
{
console.log("Bericht: " + msg);
})
}
},1250);

有没有办法告诉我的页面每 1 分钟只能执行一次?某种 block 。或者可能是执行查询上的一个 block ?

最佳答案

这可以解决问题:

var Axo800RstBtn;
var hasBeenSet = false;

setInterval(function()
{
Axo800RstBtn = document.getElementById('Axo800BtnStatus').innerHTML;
var BatchUnits1 = document.getElementById('Axo800BatchProduction').innerHTML;

if(Axo800RstBtn == 1 && !hasBeenSet)
{

hasBeenSet = true;

$.ajax({
method: "POST",
url: "SetBatchProductionInDB.php",
data: {
machineNumber: 1,
actualProduction: BatchUnits1
}
})
.done(function(msg)
{
console.log("Bericht: " + msg);
})
}
},1250);

尽管我强烈建议您也在服务器端进行此控制。 IE。您可以通过在 PHP 中设置 session 变量来跟踪正在调用的脚本。

此代码将在请求发送一次后立即阻止发送该请求。如果你想在 60 秒后启用它,你可以在 hasBeenSet = true; 之后添加

hasBeenSet = true;
setTimeout(function(){ hasBeenSet = false}, 60000);

关于javascript - 仅在数据库中设置一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35653326/

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