Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

161
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda