Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

81
Views
htmx.ajax solo llamó dos veces al realizar múltiples consultas

Estoy usando $watch() de Alpinejs en una propiedad determinada dentro de varios bloques de datos x para llamar a htmx.ajax con un controlador personalizado cada vez que cambia esa propiedad. Aquí hay un fragmento:

HTML:

 <div x-data="{profiles:[]}"> <div x-data="..." x-init="$watch('profiles', val=>onProfilesChanged())">...</div> <div x-data="..." x-init="$watch('profiles', val=>onProfilesChanged())">...</div> <div x-data="..." x-init="$watch('profiles', val=>onProfilesChanged())">...</div> <div> <!-- profiles modified here in response to user input --> ... </div> </div>

JavaScript:

 function onProfilesChanged() { htmx.ajax('GET', ..., {'handler': (evt,response)=>{...}}); }

Al depurar en el navegador, puedo ver que onProfilesChanged se llama como se esperaba (3 veces), pero solo se envían 2 solicitudes de red y el controlador de devolución de llamada solo se ejecuta dos veces. Las solicitudes parecen corresponder a la primera y la última llamada, y todo lo que hay en el medio se pierde de alguna manera (se intentó con más devoluciones de llamada de $watch() ). El comportamiento es el mismo tanto en Firefox como en Chromium, por lo que dudo que sea una limitación del navegador, pero no pude encontrar nada en la documentación de htmx sobre la cantidad máxima de solicitudes de Ajax que se pueden poner en cola.

Estoy totalmente perdido aquí, cualquier idea de lo que podría estar pasando sería muy apreciada. ¡Gracias!

Editar: el problema también ocurre cuando se usa htmx.ajax() dentro de un bucle for, por lo que realmente parece estar del lado de htmx. Hay una etiqueta hx-sync para establecer el comportamiento de la cola para las etiquetas hx-get/post..., pero no parece funcionar con la API de JS.

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Finalmente logré encontrar una solución alternativa: agregar un elemento de source dinámico a los atributos de opciones de la solicitud de Ajax soluciona el problema. Todavía tengo un límite de 2 solicitudes por elemento en el caso de bucles for, pero las solicitudes de diferentes fuentes ahora tienen diferentes colas.

Guardo esto para referencia futura en caso de que ayude a alguien más.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!