У меня есть два вызова ajax с использованием jquery. Для первого требуется время около 20 секунд для выполнения, но второе - намного быстрее, должно выполняться в миллисекундах. То, что происходит, - это второй вызов ajax, не заканчивающий выполнение, пока первый не будет завершен, как только первый вызов будет выполнен, второй ajax выполняется быстро. Таким образом, второй аякс вызывается с первым, но он не завершает выполнение, пока первый не будет завершен. Как я могу это исправить?два вызова ajax не выполняются одновременно
Вот мой код:
jQuery(document).ready(function (e) {
do_download();
});
function do_download()
{
$('.status p').text('Fetching the video ...');
var request = $.ajax({
url: "http://www.example.com/download/start",
method: "POST",
async: true,
data: {youtube_url: 'https://www.youtube.com/watch?v=ic7scBTY-xw',
access_token :'4b5e0c903eb7b68eb336500cdfc2d11c'
}
});
request.done(function (msg) {
//alert('done');
});
request.fail(function (jqXHR, textStatus) {
alert("Request failed: " + textStatus);
});
}
var get_operation_status_interval = setInterval(get_operation_status, 1000);
function get_operation_status() {
var url_process_info = "http://www.example.com/download/get_video_status_new/ic7scBTY-xw";
$.ajax({
url: url_process_info,
dataType: 'json',
async: false,
method: "GET",
cache: false,
success: function(data) {
if(data.progress){
$('div.meter span').css('width', data.progress);
if(data.progress == '100%' && data.is_file_ready != false){
$('.status p').text('Converting the video ...');
}
}
if (data.is_file_ready == true) {
clearInterval(get_operation_status_interval);
$('.status p').text('file is ready !');
$('.download-section').show();
}
}
});
Я переместил заданный интервал с функцией в документ, как вы упомянули, но все еще не работает, вот снимок от firebug http://screencast.com/ t/fYdn7W5b – Kamal
Вот моментальный снимок, когда я установил два вызова async = true, второй ajax был вызван много раз, но никто не выполнялся до тех пор, пока do_download не будет выполнен. http://screencast.com/t/qnxwmVVGov – Kamal
Хорошо, один вопрос, используете ли вы какое-то предупреждение в своем коде? Попробуйте удалить все функции «alert», потому что это функция синхронизации и заблокировать основной поток javascript. –