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

166
Vistas
¿Cómo puedo evitar que mi función Ajax/Json se cargue cada vez más lentamente?

índice.php:

 <div class="start">START</div> <div class="content"></div> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <script src="script.js"></script>

actualizar1.php:

 <div class="fire">FIRE<div> <div class="result"></div>

actualizar2.php:

 $json = array( 'unique' => uniqid(), ); echo json_encode($json);

secuencia de comandos.js:

 $(document).off("click", ".start").on("click", ".start", function (event) { $.ajax({ url: "update1.php", data: {}, type: "POST", success: function (data) { $(".content").html(data); } }) }); $(document).off("click", ".fire").on("click", ".fire", function (event) { $.ajax({ url: "update2.php", type: "POST", dataType: "json", encode: true, data: {}, success: function (data) { $(".result").html(data.unique); } }); });

Cargo algunos datos a través de Ajax y luego cargo una ID única con codificación json. Está funcionando bien. El único problema es que con cada clic en "DISPARAR", la carga de la ID única se vuelve cada vez más lenta.

El tiempo de carga es más o menos así

  • Haga clic en "FUEGO" ---> Tiempo de carga de ID único: 0sek
  • Haga clic en "FUEGO" ---> Tiempo de carga de ID único: 2sek
  • Haga clic en "FUEGO" ---> Tiempo de carga de ID único: 4sek
  • Haga clic en "FUEGO" ---> Tiempo de carga de ID único: mucho tiempo que el símbolo de espera del mouse gira y gira.

...

No puedo averiguar por qué sucede esto.

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

El problema es con la implementación PHP de uniqid()

Para evitar colisiones basadas en el tiempo, dormirá durante un número determinado de microsegundos.

Esto se puede mitigar sin perder la singularidad que ocurriría en instancias de colisión basada en el tiempo.

Vea la explicación detallada aquí: ¿Por qué uniqid es lento?

La parte clave de la solución es establecer more_entropy en verdadero para evitar colisiones basadas en el tiempo.

Al establecer more_entropy en verdadero, elegimos proporcionar una fuente adicional de entropía agregando datos usando php_combined_lcg() (un generador de números pseudoaleatorios), evitando así colisiones inducidas por el tiempo sin tener que dormir.

over 4 years ago · Santiago Trujillo 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