Я хочу ускорить загрузку моего файла 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);
}
});
}
}
});