AJAX-запрос с низкой производительностью ЗАГРУЗКА ФАЙЛА - PullRequest
0 голосов
/ 16 февраля 2019

Я хочу ускорить загрузку моего файла ajax.Я недавно использую AJAX, и мой вопрос, как я могу оптимизировать свой код?Это отправка с 8 входами и 1 загрузкой файла: Изображение формы

Загрузка файла занимает слишком много времени, и я хочу улучшить его.У меня есть 3 AJAX-запроса;1 для переменных в форме, другое для файла и одно повторное для входных данных, если пользователь оставляет загрузку пустой.

Вот мой код для отправки формы и загрузки файла:

$("#enviar").click(function(event) {
    var formData = new FormData(this);
    var nome = $("#nome").val();
    var apelido = $("#apelido").val();
    var email = $("#email").val();
    var nome_do_negocio = $("#nome_do_negocio").val();
    var website = $("#website").val();
    var cidade = $("#cidade").val();
    var descricao = $("#descricao").val();
    var gasto = $("#gasto").val();

    console.log(nome + " " + apelido + " " + email + " " + nome_do_negocio + " " + website + " " + cidade  + " " + descricao  + " " + gasto);


    if (nome == "" || apelido == "" || email == "" || nome_do_negocio == "" || website == "" || cidade == "" || descricao == "" || gasto == "") {
        $("#error").text("Fill all inputs");
    } else {


        if (document.getElementById("file-anexo").files.length > 0) {
            var unico = 1;

            console.log("Getting File");
            var name = document.getElementById("file-anexo").files[0].name;
            var form_data = new FormData();
            var oFReader = new FileReader();
            oFReader.readAsDataURL(document.getElementById("file-anexo").files[0]);
            form_data.append("file", document.getElementById('file-anexo').files[0]);
            console.log("File apppended");

            $.ajax({
                type: "POST",
                url: "ajax/formulario.php",
                beforeSend: function() {
                    $('#loader-icon').show();
                    $('.progress-bar').width('50%');
                    $('#enviar').prop('disabled', true);

                },
                data: {
                    nome: nome, 
                    apelido: apelido,
                    email: email,
                    nome_do_negocio: nome_do_negocio,
                    website: website,
                    cidade: cidade,
                    descricao: descricao,
                    gasto: gasto,
                    unico: unico,
                },
                success:function(data)
                {


                    $.ajax({
                        url: "ajax/anexo.php", 
                        uploadProgress: function(event, position, total, percentageComplete)
                        {
                            $('.progress-bar').animate({
                                width: percentageComplete + '%'
                            }, {
                                duration: 1000
                            });
                        },
                        type: "POST",             
                        data: form_data, 
                        contentType: false,       
                        cache: false,           
                        processData:false,       
                        success: function(data)  
                        {   
                            console.log("Sucesso");
                            $('#loader-icon').hide();
                            $('.progress-bar').width('100%');
                            $('#enviar').prop('disabled', false);
                            $('.progress-bar').width('0%');
                            swal("Sucesso!", "Projeto enviado! Foi-lhe enviado um email com mais detalhes", "success");
                        }
                    });


                }

            });



        } else {

            $.ajax({
                type: "POST",
                url: "ajax/formulario.php",
                beforeSend: function() {
                    //$('#loader-icon').show();
                    $('#enviar').prop('disabled', true);
                    $('.progress-bar').width('100%');


                },
                data: {
                    nome: nome, 
                    apelido: apelido,
                    email: email,
                    nome_do_negocio: nome_do_negocio,
                    website: website,
                    cidade: cidade,
                    descricao: descricao,
                    gasto: gasto,
                },
                success:function(data)
                {
                    $('#enviar').prop('disabled', false);
                    swal("Sucesso!", "Projeto enviado! Foi-lhe enviado um email com mais detalhes", "success");
                    //alert(data);
                }

            });

        }




    }

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