javascript - 每次在mysql数据库中插入新记录时刷新div
问题描述
我正在网页上的 SCADA 系统上工作,并且仅在 mysql 数据库中的 2 个表中的任何一个发生更改时才想用 gif 刷新某些 div。
而且我也想在每次发生变化时都这样做(表中的新记录)。当这两个表保持不变时,不应该采取任何行动(没有新记录)。
整个网页是 php/html,这是我第一个使用 javascript/ajax 的方法。我试过使用:
setInterval($('. examplediv).load(location.href + ' .examplediv), 1000);
但它不适合我的需要。它使我的图形在每次刷新时都会闪烁,而它们应该是静态的。为了简化:我只想在表中的状态从 a->b 更改时重新加载它们,所以我将 a.gif 与 b.gif 交换。
我可以通过以下方式检测 mysql 表中的更改:记录 ID、时间戳或表校验和,但很难使用 javascript。
<div class="refresh"> // div i want to refresh
<h3>PIR</h3> // sensor name
<p>Online: <?echo $aonline;?></p> // echoing result of query if sensor is online
<p>State: <?echo $pirstan;?></p> // echoing current state of sensor
<p>Last changed: <?echo $rowpir['Czas'];?></p> //echoing timestamp of previous state of sensor
<img class="center" src="pir.gif" alt="Kontrakton"> // showing image related to current sensor state (for example walking person to PIR sensor)
</div>
任何有关上述问题的帮助将不胜感激。特别是带有注释的示例代码,所以我理解了这个问题。也欢迎其他解决问题的方法,也许我是短视的。
解决方案
对于那些对未来感兴趣的人,最终代码感谢:Fiido93
<script type="text/javascript">
var old_count = 0;
setInterval(function(){
$.ajax({
type : "POST",
url : "test.php",
success : function(data){
if (data > old_count) {
$('.divname' ).load(window.location.href + ' .divname');
old_count = data;
}
}
});
},1000);
和 test.php
$result = mysqli_query($conn,"mysqlquery");
while($row = mysqli_fetch_array($result))
{
$printme= $row[0]; // i only echo row 0 here !!
}
echo "$printme";
推荐阅读
- automation - Automation Anywhere Citrix 插件
- c - 使用 regmap_read() 读取 I2C 寄存器但获取常量值
- php - PHPExcel使用标题名称将excel表上传到数据库
- java - 按下鼠标时检测输入事件javafx
- java - Spring SQS Listener - 启动后立即终止
- java - 似乎无法修复“字段列表”错误中的未知列
- php - 从 Android Studio 的 Mysql 数据库中获取数据
- shell - 运行 Perl 脚本的多个实例
- python - 如何调试 NLU Watson API 中的未知错误?
- java - 带有 LocaleList 的 Android 本地化使用多种语言