Javascript 刷新div时会杀死While循环
我的JavaScript代码每5秒刷新一次我的Javascript 刷新div时会杀死While循环,javascript,php,jquery,Javascript,Php,Jquery,我的JavaScript代码每5秒刷新一次我的watcher.php文件,效果非常好。第一个页面加载正常,但在5秒钟之后,while循环被终止。有什么原因吗 index.php文件 更新: 这是什么,看看下面的图片。您会注意到,在第一次加载(5秒)后,可单击(href)被终止 var updateWatcher=函数(){ $.ajax({ url:'watcher.php', 成功:功能(响应){ $('.view').html(响应); setTimeout(函数(){ updateWa
watcher.php
文件,效果非常好。第一个页面加载正常,但在5秒钟之后,while
循环被终止。有什么原因吗
index.php
文件
更新: 这是什么,看看下面的图片。您会注意到,在第一次加载(5秒)后,可单击(href)被终止
var updateWatcher=函数(){
$.ajax({
url:'watcher.php',
成功:功能(响应){
$('.view').html(响应);
setTimeout(函数(){
updateWatcher();
}, 3500);
}
});
}
updateWatcher();
诚然,这可以用类似的方法更优雅地解决,但对于一个简单的修复,您可以尝试这样的方法,只有在成功接收到响应后才设置计时器。这应该更可靠
这是一把简单的小提琴:(看看控制台)。你说的while loop kets被杀是什么意思?你是说运行php代码需要5秒钟以上吗?嗯,对不起,我可能解释错了。这就是我的意思。看看那些可点击的名字。第一次装载5秒钟后,它们就会离开。。这样做不是个好主意。。。我首先看到并且不想看到的是,将Asynchronous load()放在interval中。在下一次间隔转换触发之前,不保证加载()将结束。第一个问题,谢谢布莱恩!请查看我的更新!这就是我面临的问题。再次感谢!布莱恩,我试过你的密码。没有什么。刷新后,这些名称不再可单击。奇怪..你查过小提琴了吗?就你的href被杀而言,这可能需要加上你的锚定标签上被注入的额外斜杠(/)<代码>。注意,您将锚点视为一个自动结束标记(“/>”),但您也有一个结束锚点(“”)。您就是那个人!就这样!额外的斜杠!哇!真不敢相信。非常感谢。
<script type="text/javascript">
var auto_refresh = setInterval(function(){
$('.view').load('watcher.php');
}, 5000); // refresh div time
</script>
<body>
<div class="view">
<?php include 'watcher.php'; ?>
</div>
</body>
...
include 'config.php';
$sql = "SELECT id, name, available, will_return, status FROM check_in_out";
$result = $conn->query($sql);
echo '<div style="margin-top:35px;"><center>';
echo '<table class="pure-table">
<thead>
<tr>
<th>Name</th>
<th>Available</th>
<th>Status/Comments</th>
<th>I\'ll Return At:</th>
<th>Returned</th>
</thead>
</tr>
';
if ($result->num_rows > 0) {
$i = 1;
// output data of each row
while ($row = $result->fetch_assoc()) {
echo '<tr>';
echo '<td><img style="vertical-align:middle" src="imgs/card.jpg"> <a class="various" href="#'.$i.'"/>'.$row["name"];'</a></td>';
echo "<td>";
if ($row['available'] == 1) {
echo "<img src='imgs/available.gif'/>";
echo "Online";
} else {
echo "<img src='imgs/not-available.gif'/>";
echo "<span style='vertical-align:middle'>Away</span>";
};
echo "</td>";
echo '<td>'.$row["status"];'</td>';
echo '<td>'.$row["will_return"];'</td>';
echo '<td></td>';
echo '</tr>';
echo '<div align="center" id="'.$i++.'" style="display:none;width:520px;">
<h2>'.$row["name"].'</h2>
<!-- <h4>Current Status: '.$row["status"].'</h4> -->
<form method="post" action="statusChange.php" />
<input type="hidden" value="'.$row["id"].'" name="id"/>
<textarea rows="4" cols="50" placeholder="Enter Comment/Status Here..." name="comment"></textarea>
<br/><br/>
When will you return? - <input type="time" name="e_time">
<br/><br/>
<input class="pure-button pure-button-primary" type="submit" value="Leave/Return">
</form>
</div>';
}
} else {
echo "0 employees";
}
echo '</tr></table>';
echo '</div></center>';
$conn->close();
<script type="text/javascript">
var updateWatcher = function() {
$.ajax({
url: 'watcher.php',
success: function(response) {
$('.view').html(response);
window.setTimeout(function(){
updateWatcher();
}, 3500);
}
});
}
updateWatcher();
</script>