Аякс слишком долго возвращался - PullRequest
0 голосов
/ 30 июня 2018

Я записываю 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 для завершения обработки файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...