What does $ .active mean in the following jQuery code?
I am using the following jQuery libraries in my project. Below is the code to add them:
<script src="jquery-1.9.1.min.js"></script>
<script src="jquery-ui-1.10.0.custom.min.js"></script>
Now the function written by the previous developer looks like this:
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();
}
});
//}
}
Now can someone please explain what the following files do and what is important?
if($.active > 0) { //or $.active
request_inprogress();
}
Thanks in advance.
jQuery $.active
is a function that jQuery uses internally but is not mentioned in the official documentation. But there is no problem to use when we code.
This is a flag to enable global event handlers for ajaxStart()
and ajaxStop()
. You can find more information on this here and read this question.
Here are some code snippets found on 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");
}
It checks if there is an active connection, if there is (> 0), it will execute the request_inprogress () function, otherwise it will display another part of the statement.
Probably to prevent code from being processed while processing already exists.
jQuery.active
It describes how to check the number of active connections to the server and will evaluate to true when the number of connections is zero.