Я записываю 2-4 секунды аудио на своем веб-сайте и, используя Ajax, отправляю его на сервер. Некоторое время этот Ajax занимает 4-5 секунд, с другой стороны, иногда требуется до 2 минут для загрузки того же файла. Размер файла составляет около 360 КБ. Я хочу, чтобы Ajax отбросил файл на сервере, немедленно вернулся и позволил серверу продолжить его обработку, а пользователь тем временем может начать запись следующего файла.
Я использую webRTC для записи аудио и работаю над Yii 1.x
//create FormData
var formData = new FormData();
formData.append(fileType + '-filename', fileName);
formData.append(fileType + '-blob', blob);
callback('Uploading ' + formData + ' recording to server.');
//ajax call
makeXMLHttpRequest('captureFile', formData, function(progress) {
if (progress !== 'upload-ended') {
callback(progress);
return ;
}
var initialURL = '<path to upload a file>';
callback('ended', initialURL + fileName);
});
function makeXMLHttpRequest(url, data, callback) {
var request = new XMLHttpRequest();
request.onreadystatechange = function() {
if (request.readyState == 4 && request.status == 200) {
callback('upload-ended');
}
};
request.open('POST', url);
request.send(data);
};
в случае успеха следующий ajax выполняет свою операцию для инициации записи следующего файла.
Как я могу убедиться, что этот ajax только перетаскивает файл на сервер и возвращает его обратно, и сервер обрабатывает файл, а не останавливает ajax для завершения обработки файла.