【发布时间】:2017-03-14 12:40:40
【问题描述】:
我有一个从另一个页面重新加载数据的 div。代码如下所示:
var auto_refresh = setInterval(
function() {
$('#mydiv').load('load.php');
}, 1000); // refresh every 1000 milliseconds
<script type="text/javascript" src="https://code.jquery.com/jquery-3.1.1.js"></script>
<div id="mydiv">
<?php echo 'loading...';?>
</div>
这非常适合刷新我的数据。但是,我真的不希望它每 1000 毫秒刷新一次 div,我希望它检查是否有任何变化,如果是,则刷新 div。
例如:
$current_vericode = 'kdsjfkdfj';
$sql = "SELECT\n".
" vericode\n".
"FROM\n".
" users\n".
"WHERE\n".
" users.id = 3";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
$new_vericode = $row["vericode"];
}
}
if ($current_vericode == $new_vericode)
{
//don't refresh the div
} else {
//refresh it and...
//$current_vericode = $new_vericode
}
这种方式所发生的只是它检查 mysql 以查看指定字段是否已更改。如果没有,那么它什么也做不了。如果有,那么它将刷新 div 并更新代码。
我知道效果与不断更新是一样的,但我真的想添加我可以用它做的表单和东西,直到 mysql 字段发生变化才更新。
所以每 1000 毫秒检查一次 mysql 并将其与当前值进行比较。如果它们相同,则结束/退出。如果它们已更改,则刷新并将新值保存为当前值。
有什么想法吗?
【问题讨论】:
-
请出示您当前的
load.php。我想它只是在呼应 html,但我想在回答之前确定一下,查看特定的 html 将有助于更好地理解您的问题 -
使用这样的语法来控制刷新
$( "#result" ).load( "ajax/test.html #container" );如果不需要刷新,不要发送“#container”。在这里阅读 - api.jquery.com/load