Ajax花了太长时间才回来

时间:2018-06-30 06:01:13

标签: javascript jquery yii

我正在网站上录制2-4秒的音频,并使用Ajax将其发布到服务器上。此Ajax有时需要4到5秒钟,而另一方面,上传同一文件则需要2分钟。文件大小约为360kB。我希望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来完成文件处理。

0 个答案:

没有答案