Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

hx-preload (htmx 4): an expired preload blocks re-preloading until the element is clicked

Abierto Apto para principiantes
#4,151 1 comentario 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 4 días

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
1/5
Tiempo estimado
Menos de una hora
Aptitud para principiantes
88/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
javascript
Área
frontend

Línea de trabajo

El issue señala src/ext/hx-preload.js en la rama four y el retorno anticipado que comprueba elt._htmx?.preload; empieza leyendo ese listener de preload y la gestión de expiración de htmx_before_request. Reproduce el problema pasando el cursor por encima, esperando más de cinco segundos y volviendo a pasar el cursor. El trabajo estará terminado cuando al pasar el cursor de nuevo se inicie un nuevo preload después de que expire el anterior.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Version: htmx 4.0.0 (dist/ext/hx-preload.js; also current on the four branch, src/ext/hx-preload.js)

What happens

The preload listener returns early whenever a preload is stored on the element, without checking whether it has expired:

if (elt._htmx?.preload) return;

An expired entry is only removed in htmx_before_request, i.e. by the next real request. So once the preload window has passed (5 s by default), hovering the element never preloads again until it has been clicked once.

Repro

<button hx-get="/page" hx-target="#main" hx-preload="mouseover">Page</button>
  1. Hover the button: a preload request is made. ✅
  2. Wait more than 5 s without clicking.
  3. Hover again: no request. ❌ (expected: a new preload)
  4. Click: a normal request is made (the expired preload is discarded).
  5. Hover again: preload fires again.

Expected

An expired preload should be replaced on the next trigger, as expiresAt suggests (htmx_before_request already ignores an expired preload).

Suggested fix

if (elt._htmx?.preload && Date.now() < elt._htmx.preload.expiresAt) return;

(Optionally also delete elt._htmx.preload before starting the new prefetch.)

Lenguaje dominante
JavaScript
Estrellas
49.6k
Forks
1.7k
Merge medio
9 d 3 h
PR fusionados (30 d)
10

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de bigskysoftware/htmx

Todos los issues de bigskysoftware/htmx

Issues similares

Más issues de JavaScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.