Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

184
Vistas
La segunda solicitud de ajax no debe esperar hasta que la primera complete su ejecución

Estoy activando dos solicitudes de ajax al mismo tiempo. El primero tardará entre 20 y 30 segundos en completar su trabajo (es decir, guardar varios datos grandes en la tabla de diferencias, copiar imágenes, etc.)

Entonces, la segunda solicitud de ajax se activará cuando la primera comience y finalizará tan pronto como la primera complete su trabajo. El segundo se ejecutará periódicamente (en bucle recursivo hasta que el primero complete su trabajo) y mostrará el progreso al usuario final.

a continuación se muestra el código de ejemplo para replicar el comportamiento:

a.php

 <script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script> <input type="button" id="a" value = "click" /> <script> $(document).ready(function() { var i = 1; var totalCall = 10; $("#a").click(function(){ $.ajax({ url: "b.php", data: { zipcode: 97201 }, async: true, success: function( result ) { console.log(result); }, beforeSend: function () { i = 1; }, }); checkProgress(); }); function checkProgress(){ $.ajax({ url: "c.php", data: { zipcode: 97201 }, //async: true, success: function( result ) { console.log(result); i = i + 1; if (i <= totalCall) { checkProgress(); } } }); } }); </script>

b.php

 <?php session_start(); sleep(2); $_SESSION["progress"] = 1; sleep(2); $_SESSION["progress"] = $_SESSION["progress"] + 1; sleep(2); $_SESSION["progress"] = $_SESSION["progress"] + 1; sleep(2); ?>

c.php

 <?php session_start(); echo json_encode($_SESSION['progress']); ?>

El código anterior activa dos solicitudes ajax, pero c.php una cuelga hasta que b.php complete su trabajo. Hace su trabajo solo después de que finaliza b.php, puede verificar la captura de pantalla a continuación. Entonces, ¿cómo resolver esto? ingrese la descripción de la imagen aquí

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

jquery ha implementado

 $.ajax(url) .progress(function(){ /* do some actions */ }) .progressUpload(function(){ /* do something on uploading */ });

¿Quizás es lo que estás buscando?

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda