URL sin recargar en JavaScript
pushState cambia la barra de direcciones; popstate te avisa del botón atrás.
function navigate(path, { push = true } = {}) {
if (push) {
history.pushState({ path }, "", path);
} else {
history.replaceState({ path }, "", path);
}
render(path);
}
function render(path) {
const [, lang, tour] = path.split("/");
document.title = tour ? `${lang} - ${tour}` : lang || "typestar";
return { lang, tour };
}
window.addEventListener("popstate", (event) => {
render(event.state?.path ?? location.pathname);
});
Cómo funciona
pushStateagrega una entrada;replaceStatereescribe la actual.- El manejador de popstate es donde vuelves a renderizar.
- La URL debe mantenerse en el mismo origen.
Palabras clave y builtins usados aquí
constdocumentelsefunctionifreturnwindow
El intento, en números
- Líneas
- 18
- Caracteres a escribir
- 425
- Tokens
- 133
- Ritmo de tres estrellas
- 105 tpm
Al ritmo de tres estrellas de 105 tokens por minuto, este intento toma unos 76 segundos.
Paso 1 de 2 en URLs y formato; paso 11 de 13 en El navegador.