Reduce delayed navigations


Updated

It's common for a page or app to have unsent analytics or other data the moment a user closes it. To avoid data loss, some sites use a synchronous call to XMLHttpRequest () para mantener la página o aplicación abierta hasta que sus datos se pasen al serverLos 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 plus. No solo existen mejores formas de guardar datos, sino que esta técnica crea una mala user experienceEl 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 plus al retrasar el cierre de la página hasta varios segundos.

Esta práctica debe cambiar y los browsersConcepto 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 plus están respondiendo. los XMLHttpRequest ()
the specification is already scheduled for disapproval and removal. Chrome 80 takes the first step by not allowing synchronous calls within various event handlers, specifically beforeunload, unload, pagehideand visibilitychange when they are fired on layoff. WebKit also recently landed a commitment that implements the same behavior change.

In this article, I will briefly describe the options for those who need time to update their sites and describe the alternatives for XMLHttpRequest ().

Temporary exclusions

Chrome doesn't just want to disconnect XMLHttpRequest (), which is why some opt-out options are available. For sites on the Internet, a proof of origin is available. Con esto, agrega un token específico de origen a los headersConcepto 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 plus de su página que habilita la sincronización XMLHttpRequest () calls. This option ends shortly before the launch of Chrome 89, sometime in March 2021. Enterprise Chrome customers can also use AllowSyncXHRInPageDismissal policy flag, which ends at the same time.

Alternatives

Regardless of how you send the data to the server, it is best to avoid waiting for the page to download to send all the data at once. In addition to creating a bad user experience, you risk losing data if something goes wrong. Download events often not activated on mobile browsers
because there many ways to close una pestaña o browserUn 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 plus en sistemas operativos móviles sin la unload eventConcepto 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 plus de disparo. Con
XMLHttpRequest (), using small payloads was a choice. Now it is a requirement. Both alternatives have a 64 KB upload limit per context, as required by the spec.

Get keepalive

the Get API
provides a robust means of handling interactions with the server and a consistent interface 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 plus de plataforma. Entre sus opciones esta keepalive, which ensures that a request continues regardless of whether the page that made it remains open or not:

window.addEventListener('unload', {
fetch('/siteAnalytics', {
method: 'POST',
body: getStatistics(),
keepalive: true
});
}

the fetch () The method has the advantage of more control over what is sent to the server. What I don't show in the example is that fetch () also returns a promise that is resolved with a Response object. Since I am trying to prevent the page from downloading, I chose not to do anything with it.

SendBeacon ()

SendBeacon ()

it actually uses the Fetch API under the hood, which is why it has the same 64KB payload limitation and why it also ensures that a request continues after a page download. Its main advantage is its simplicity. It allows you to submit your data with a single line of code:

window.addEventListener('unload', {
navigator.sendBeacon('/siteAnalytics', getStatistics());
}

conclusion

With the greater availability of
fetch ()

in browsers, XMLHttpRequest () Hopefully, it will be removed from the web platform at some point. Browser vendors agree that it should be removed, but it will take time. Letting go of one of your worst use cases is a first step that improves the user experience for everyone.

Photo by Matthew hamilton in Unsplash