test.php的
<select id="proc_id" class="multiselect custom processselect" name="proc_id" style="display: none;">
<option>Select</option>
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
test.js
var set_time =0;
var interval;
$('#proc_id').change(function(){
set_time=$('#proc_id :selected').val();
//alert((set_time));
if(parseInt(set_time) > 0) {
clearInterval(interval);
set_time= set_time * 1000;
interval = setInterval(function() {
getFileProcessList(start_date);
getResultInfoList(start_date);
}, set_time);
}
else {
clearInterval(interval);
}
});
根据选择时间,它将调用函数。在该函数中,我有ajax请求。当我选择&#39; 1&#39;如果我选择&#39; 0&#39;那么ajax会加载它停止调用该函数,但之前加载的ajax正在加载。所以我需要停止,如果之前的ajax调用正在加载,当我选择&#39; 0&#39;
答案 0 :(得分:0)
首先计算选择的数量。使用这个
var count = $('#proc_id option:selected').length;
它会返回所选选项的数量..基于这个条件做ajax ..这是我从urs中理解的...不是吗?
您注意到&#39; 1&#39; ..这意味着选项数量或选项的价值?
答案 1 :(得分:0)
这是因为clearInterval
只会停止对setInterval
中传递的函数的后续调用。您需要存储从AJAX调用var xhr = $.ajax({})
返回的jqXHR对象,然后在事件处理程序中调用xhr.abort()
以在值为0时终止请求。
答案 2 :(得分:0)
如果你的一个/两个功能
GroupByKey
在其定义中包含ajax请求,然后您可以声明一个/两个全局变量,例如getFileProcessList(start_date);
getResultInfoList(start_date);
现在,您可以按如下方式将ajax调用分配给此变量,
var ajaxRequest1;
现在在您使用 clearInterval()的地方中止此请求
ajaxRequest1 = $.ajax({
// your code
});
将此用于所有ajax请求。