Reducir navegaciones retrasadas
Actualizado
Es común que una página o aplicación tenga análisis u otros datos sin enviar en el momento en que un usuario la cierra. Para evitar la pérdida de datos, algunos sitios utilizan una llamada sincrónica para XMLHttpRequest() para mantener la página o aplicación abierta hasta que sus datos se pasen al servidorLos servidores son ordenadores centrales y potentes dentro del campo de la tecnología de la información que procesan y proporcionan software y archivos en una red. Desde el punto de vista de un cliente, varios ordenadores en una red pueden ponerse en contacto con el servidor central para conseguir la información solicitada. En la arquitectura cliente-servidor, el servidor puede ser un software que proporciona un servicio y se ejecuta en más. No solo existen mejores formas de guardar datos, sino que esta técnica crea una mala experiencia de usuarioEl término experiencia de usuario (UX) se refiere a la experiencia que un usuario tiene con un producto o servicio. En cuanto a Internet, el término se usa frecuentemente al examinar la experiencia que los usuarios disponen con una web. Esto además puede ser en referencia al uso de un dispositivo smartphone (UX smartphone). Items de la experiencia del usuario La experiencia del usuario y la usabilidad se usan frecuentemente más al retrasar el cierre de la página hasta varios segundos.
Esta práctica debe cambiar y los navegadoresConcepto de Navegadores¿Qué son los Navegadores?Los Navegadores son herramientas informáticas que utilizamos para, normalmente, navegar por Internet y visitar cualquier página web, al mismo tiempo de para hacer otras tareas como ver documentos, observar vídeos o reproducir contenido multimedia de cualquier tipo. Son un tipo de software sencillamente usual y bastante utilizado hoy en día.Insistimos en que es algo que se utiliza con mucha frecuencia, puesto que moverse por Internet más están respondiendo. los XMLHttpRequest()
la especificación ya está programado para su desaprobación y eliminación. Chrome 80 da el primer paso al no permitir llamadas síncronas dentro de varios controladores de eventos, específicamente beforeunload, unload, pagehidey visibilitychange cuando son despedidos en el despido. WebKit también aterrizó recientemente un compromiso que implementa el mismo cambio de comportamiento.
En este artículo, describiré brevemente las opciones para aquellos que necesitan tiempo para actualizar sus sitios y describiré las alternativas para XMLHttpRequest().
Exclusiones temporales
Chrome no solo quiere desconectar XMLHttpRequest(), razón por la cual están disponibles algunas opciones de exclusión voluntaria. Para sitios en Internet, una prueba de origen está disponible. Con esto, agrega un token específico de origen a los encabezadosConcepto de Encabezados¿Qué son los Encabezados?Los Encabezados, además conocidos como headers en inglés, son una parte fundamental del diseño de cualquier web, dado que consiste en la parte principal que se ve de esta al acceder, la parte de arriba de cualquier página. El lugar más visible y al que todos los usuarios que visitan un lugar de Internet acceden cuando entran en él, pudiendo tener así una imagen rápida más de su página que habilita la sincronización XMLHttpRequest() llamadas. Esta opción finaliza poco antes del lanzamiento de Chrome 89, en algún momento de marzo de 2021. Los clientes de Enterprise Chrome también pueden usar AllowSyncXHRInPageDismissal bandera de política, que finaliza al mismo tiempo.
Alternativas
Independientemente de cómo envíe los datos al servidor, es mejor evitar esperar hasta que se descargue la página para enviar todos los datos a la vez. Además de crear una mala experiencia de usuario, corre el riesgo de perder datos si algo sale mal. Descargar eventos a menudo no se activa en navegadores móviles
porque hay muchas formas de cerrar una pestaña o navegadorUn navegador (además: browser) es una herramienta informática que te permite ver documentos y datos y navegar por la red. Los navegadores pueden mostrar distintos tipos de recursos de información; principalmente documentos HTML, a pesar de todo, además son posibles otros tipos de archivos y contenido multimedia, como PDF, JPEG, MPEG, GIF o el lenguaje de meta marcado. A través el uso de complementos especiales y la configuración respectivo, los más en sistemas operativos móviles sin la unload eventoConcepto de Evento¿Qué es un Evento?Un Evento es una actividad de carácter social que suele tener cierta proyección a nivel público y, de esta manera, suscita el interés de un determinado sector relacionado con la temática o con la razón por el que se celebra. Es un tipo de acto que suele tener mucha repercusión a nivel empresarial.Podemos hallar distintos tipos de eventos, desde los deportivos hasta los empresariales, pasando más de disparo. Con
XMLHttpRequest(), usar pequeñas cargas útiles fue una elección. Ahora es un requisito. Ambas alternativas tienen un límite de carga de 64 KB por contexto, como lo requiere la especificación.
Obtener keepalive
los Obtener API
proporciona un medio sólido para tratar las interacciones con el servidor y una interfaz consistente para su uso en diferentes APIConcepto de API¿Qué es una API?Una API, siglas de Application Programming Interface o Interfaz de Programación de Apps, es un recopilatorio de código que se puede emplear para que varias apps se comuniquen entre ellas. Es algo que realiza una tarea equivalente a la interfaz de usuario al momento de promover la interacción entre persona y programa, solo que aplicado única y exclusivamente dentro del entorno del software.Aún cuando suene más de plataforma. Entre sus opciones esta keepalive, lo que garantiza que una solicitud continúe independientemente de que la página que la realizó permanece abierta o no:
window.addEventListener('unload', {
fetch('/siteAnalytics', {
method: 'POST',
body: getStatistics(),
keepalive: true
});
}
los fetch() El método tiene la ventaja de un mayor control sobre lo que se envía al servidor. Lo que no muestro en el ejemplo es que fetch() también devuelve una promesa que se resuelve con un Response objeto. Como estoy tratando de evitar la descarga de la página, elegí no hacer nada con ella.
EnviarBeacon ()
en realidad usa la API Fetch bajo el capó, razón por la cual tiene la misma limitación de carga útil de 64 KB y por qué también asegura que una solicitud continúe después de la descarga de una página. Su principal ventaja es su sencillez. Le permite enviar sus datos con una sola línea de código:
window.addEventListener('unload', {
navigator.sendBeacon('/siteAnalytics', getStatistics());
}
Conclusión
Con el mayor disponibilidad de
fetch()
en los navegadores, XMLHttpRequest() Con suerte, se eliminará de la plataforma web en algún momento. Los proveedores de navegadores están de acuerdo en que debería eliminarse, pero llevará tiempo. Dejar de lado uno de sus peores casos de uso es un primer paso que mejora la experiencia del usuario para todos.
Foto por Matthew Hamilton en Unsplash




