我在我的项目中使用了以下jQuery库。以下是添加它们的代码:
<script src="jquery-1.9.1.min.js"></script>
<script src="jquery-ui-1.10.0.custom.min.js"></script>
现在由前任开发人员编写的函数如下:
function add_rebate_by_product() {
if($.active > 0) { //or $.active //What this $.active does
request_inprogress();
} else {
var manufacturer_id = $("#company_id").val();
var rebate_no = $('.well').length;
var site_url = $('#site_url').val();
if ($('.well').length>=0) {
rebate_no = rebate_no+1;
}
$('.add_new_rebate').attr('disabled','disabled');
}
$.ajax({
type: "POST",
url: "add_rebate_by_product.php",
data: {'request_type':'ajax', 'op':'create_rebate', 'rebate_no':rebate_no, 'manufacturer_id':manufacturer_id},
beforeSend: function() {
$('.load_img').html("<img src='"+site_url+"img/ajax-loader.gif' class='load' alt='Loading...'>");
},
success: function(data) {
if(jQuery.trim(data)=="session_time_out") {
window.location.href = site_url+'admin/login.php?timeout=1';
} else {
$('.rbt').append(data);
$('.add_new_rebate').removeAttr('disabled');
//code for state select control to make functionality workable in newly added rebate block
$('.states').multiselect({
includeSelectAllOption: true,
maxHeight: 150
});
//code for datepicker control to make functionality workable in newly added rebate block
$(".date_control").datepicker({
dateFormat: "yy-mm-dd"
});
}
$('.load').remove();
}
});
//}
}
现在有人可以解释以下文件的作用以及它的重要性吗?
if($.active > 0) { //or $.active
request_inprogress();
}
提前致谢。
答案 0 :(得分:5)
jQuery $.active
是jQuery在内部使用但在官方文档中没有提到的函数。但是在我们编码时使用是没有问题的。
这是为ajaxStart()
和ajaxStop()
启用全局事件处理程序的标志。您可以找到有关here和阅读this问题的详细信息。
以下是github上的一些代码段。
1
// Counter for holding the number of active queries
active: 0,
2
// Watch for a new set of requests
if ( fireGlobals && jQuery.active++ === 0 ) {
jQuery.event.trigger("ajaxStart");
}
3
// Handle the global AJAX counter
if ( !( --jQuery.active ) ) {
jQuery.event.trigger("ajaxStop");
}
答案 1 :(得分:3)
它测试是否存在活动连接,如果有任何(&gt; 0),它将执行函数request_inprogress(),否则它将执行语句的else部分。
在处理代码时可能会阻止代码处理。
答案 2 :(得分:2)
jQuery.active
此处描述了测试服务器的活动连接数,并在连接数为零时评估为真。