Прогресс загрузки в jquery функции $.ajax
Что бы отображать прогресс загрузки при использовании JQuery в $.ajax функции указываем параметр xhr. Пример:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
var orderForm = document.getElementById('basket-order-form'); orderForm.addEventListener('submit', function (e) { e.preventDefault(); var formData = new FormData(orderForm); var btnText = $('.js--submit-order').text(); $.ajax({ url: api_path + 'basket.php', type: "POST", data: formData, processData: false, contentType: false, xhr: function () { var jqXHR = null; if ( window.ActiveXObject ) { jqXHR = new window.ActiveXObject( "Microsoft.XMLHTTP" ); } else { jqXHR = new window.XMLHttpRequest(); } //Upload progress var btnSuccess = $('.js--submit-order'); jqXHR.upload.addEventListener( "progress", function ( evt ) { if ( evt.lengthComputable ) { var percentComplete = Math.round( (evt.loaded * 100) / evt.total ); //Do something with upload progress // console.log( 'Uploaded percent', percentComplete ); btnSuccess.text(percentComplete + '%'); } }, false ); //Download progress jqXHR.addEventListener( "progress", function ( evt ) { if ( evt.lengthComputable ) { var percentComplete = Math.round( (evt.loaded * 100) / evt.total ); //Do something with download progress console.log( 'Downloaded percent', percentComplete ); } }, false ); return jqXHR; }, success: function (data) { $('.js--submit-order').text(btnText); }, dataType: 'json' }); }); |
Способ такой реализации взят от сюда: https://gist.github.com/umidjons/6173837