Tutoriales WooCommerce

Los problemas de trabajar con History API y cómo los solucionamos

¿Alguna vez has trabajado con la History API para construir tus aplicaciones? ¿No? ¡Pues deberías intentarlo, es increíble!

¿No me crees? ¿Piensas que es una mierda? Pues probablemente sea porque te has encontrado con alguno de sus muchos problemas:

  • En algunos casos, un evento popstate se activa al cargar la página sin una razón aparente. Esto ocurre cuando actualizas una página que anteriormente tenía un estado configurado. La mayoría de las veces no necesitas esto, ya que puedes verificar el window.history.state desde JS al cargar la página si necesitas hacer algo con él. Se siente más natural que un evento popstate solo se active cuando el usuario presiona los botones de retroceso o avance, ¿verdad?
  • ¿Por qué incluir el parámetro title en los métodos pushState y replaceState si los navegadores ni siquiera lo están implementando? No es ciencia espacial cambiar el parámetro document.title. ¡Vamos, Mozilla y Google! Microsoft, sabemos que lo intentas con todas tus fuerzas – ¡solo eliminen IE de una vez!
  • Google Analytics todavía no se lleva bien con la History API, pero en este caso es comprensible. No todos los eventos pushState o popState están destinados a activar una respuesta de Analytics.

Después de luchar con estos problemas durante un tiempo, he creado una pequeña biblioteca JS que proporciona casi la misma interfaz que el objeto historia nativo, pero llena los vacíos mencionados anteriormente.

Está incluido en nuestro framework de código abierto, Ignite WP. Echa un vistazo a la fuente aquí y documentación aquí.

Protección de datos

Este sitio web utiliza cookies para que podamos ofrecerle la mejor experiencia de usuario posible. La información de las cookies se almacena en su navegador y realiza funciones como reconocerle cuando vuelve a nuestro sitio web y ayudar a nuestro equipo a comprender qué secciones del sitio web le resultan más interesantes y útiles.

Cookies estrictamente necesarias

Cookie estrictamente necesaria debe estar activada en todo momento para que podamos guardar sus preferencias de configuración de cookies.

Cookies de terceros

Este sitio web utiliza Google Analytics para recopilar información anónima como el número de visitantes del sitio y las páginas más populares.

Mantener esta cookie activada nos ayuda a mejorar nuestro sitio web.