我有一个包含任务的html表,最后一列称为“status”。我需要做一件简单的事情,用动画gif图标的常用方法跟踪每个任务的状态,如果它正在进行中,或者检查它是否完成。
我过去通过调用带有$ .ajax的php脚本来完成此操作,它每1分钟刷新一次。该脚本是一个PHP脚本,其中一个查询检查了一个布尔列。这种方法还可以,但即便如此,我知道这很可能是做这种事情的最愚蠢的方法。
我正在寻找一种更强大的方法来做到这一点,当我在搜索时,我找到了这个片段
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$.ajaxSetup({ cache: false }); // This part addresses an IE bug. without it, IE will only load the first number and will never refresh
setInterval(function() {
$('#divToRefresh').load('/path/to/your/php/file/userCount.php');
}, 3000); // the "3000" here refers to the time to refresh the div. it is in milliseconds.
});
</script>
这样的东西可以工作,但如果任务实际完成,如何停止刷新?像“Gaurav Sharma”这样的回答post是要走的路?
我是Jquery的新手,所以我真的很想知道你会怎样做这样的事情,这似乎是一项常见的任务,所以我犹豫是通过编写2页代码重新发明轮子来完成一些事情。 5行: - )
答案 0 :(得分:0)
var interval = setInterval(function() {
$('#divToRefresh').load('/path/to/your/php/file/userCount.php');
if(somecondition){
clearInterval(interval);
}
}, 3000); // the "3000" here refers to the time to refresh the div. it is in milliseconds.
调用clearInterval(interval)
会停止重复。
答案 1 :(得分:0)
你应该实现一些这样的代码
var interval = null; // has to be global in this example
// [...] your code
interval = setInterval(function(...));
// [...] your code
如果您的脚本完成,只需从任何地方拨打clearInterval(interval)