• /
  • EnglishEspañolFrançais日本語한국어Português
  • Se connecterDémarrer

Cette traduction automatique est fournie pour votre commodité.

En cas d'incohérence entre la version anglaise et la version traduite, la version anglaise prévaudra. Veuillez visiter cette page pour plus d'informations.

Créer un problème

Nouveau monitoring de Browser SPA

Important

Nous déployons cette fonctionnalité par phases à l'aide d'un indicateur de fonctionnalité pour remplacer l'expérience SPA du navigateur existante par défaut. Il n'y aura pas d'option permettant de choisir la nouvelle version SPA que vous recevrez ; vous recevrez toujours automatiquement la dernière version.

SPA (sortie dans l'agent v1.298.0)

La prise en compte des tâches longues a été introduite pour remplacer le suivi de rappel étendu utilisé dans les anciennes applications à page unique (SPA). Il sert également à remplir les attributs jsDuration, timeToSettle et timeToLastCallbackEnd des événements AjaxRequest associés à une BrowserInteraction.

Pour certains objets natifs du navigateur enveloppés par l'agent nrWrapper, leur rappel sera chronométré. Les tâches d'une durée supérieure à 50 ms (tâches longues) peuvent étendre une BrowserInteraction. Cette approche reposait sur une heuristique de navigation souple permettant de déterminer quand une interaction se produisait naturellement. L'interaction sera désormais prolongée et sa durée sera étendue jusqu'à une période d'inactivité de 5 secondes, et son heure de fin sera réajustée en conséquence.

Auparavant, une requête Ajax associée à une interaction ne signalait ni ne suivait le temps de descente en rappel, ce qui entraînait des valeurs nulles pour les trois attributs mentionnés ci-dessus. Avec la mise à jour actuelle, XMLHttpRequest (mais pas fetch) qui fait partie d'une interaction et comprend des écouteurs d'événements provoquant des tâches longues, verra ses attributs jsDuration, timeToSettle et timeToLastCallbackEnd mis à jour pour refléter le timing du long rappel.

SPA (sortie dans l'agent v1.253.0)

Pour les clients monitoring les applications monopages (SPA) du navigateur, nous sommes ravis d'annoncer une refonte de notre fonctionnalité monitoring SPA, destinée à résoudre de nombreux problèmes :

  • Dernières versions inutilisables : des conflits fréquents avec des bibliothèques tierces et une capture interaction peu fiable ont affecté l'agent existant, rendant souvent la dernière version inutilisable.
  • Solutions patchwork : résoudre un problème avec des correctifs SPA en introduisait souvent un autre, créant un cycle frustrant de correctifs et de régressions.
  • Conflits de bibliothèques tierces : l'encapsulation globale, en particulier autour de Promises, perturbe souvent la fonctionnalité du code en raison de conflits avec d'autres bibliothèques.
  • Goulot d'étranglement des performances : les conflits avec le code utilisant des temporisateurs, RAF et la chaîne de promesses ont entraîné des problèmes de performances, allant des ralentissements aux blocages.

L’expérience monitoring SPA mise à jour est conçue pour éliminer ces problèmes et fournir une expérience monitoring considérablement améliorée. Les principaux changements incluent :

  • Exécution non encapsulée : en n'encapsulant pas les variables globales principales, la nouvelle expérience SPA libère des gains de vitesse d'exécution pour votre application.

  • Aligné sur les heuristiques de navigation souple : la nouvelle expérience adopte la navigation souple de Google Chrome, offrant un suivi interaction plus précis et un meilleur alignement avec le comportement du navigateur.

  • Détermination simplifiée interaction : les interactions sont désormais définies comme un événement d'UI (clic/appui sur une touche/soumission -> changement de route -> modification DOM ), offrant une approche de capture plus claire et plus efficace.

    • Dissociation potentielle d'événements : vous pouvez observer que les événements AjaxRequest et JavascriptError précédemment associés se dissocient de l'interaction, reflétant l'accent mis sur l'interaction pilotée par UI .
  • Concentrez-vous sur les indicateurs clés : bien que les données rapportées restent en grande partie inchangées, la nouvelle expérience ne suit plus l'exécution JavaScript ni la durée de rappel au sein de l'interaction, simplifiant ainsi les informations rapportées.

  • Durées d'interaction réduites : attendez-vous à des durées d'interaction considérablement plus courtes, en particulier pour les changements d'itinéraire. Les chargements de pages initiaux connaîtront une légère réduction.

  • Mises à jour de l'API :

    • Nouvel argument optionnel .interaction({waitForEnd: true}) ajouté à la fonction .interaction() : cela permet de personnaliser l'heure de fin de interaction de l'utilisateur. La fonctionnalité .interaction() existante reste inchangée.
    • API obsolète : la fonction createTracer: bien que toujours fonctionnelle, la fonction createTracer est obsolète car elle ne maintient plus l'interaction ouverte ni les temps de rappel. Remarque : si vous continuez à utiliser createTracer avec la nouvelle expérience SPA, l'événement BrowserTiming ne sera pas créé.

Problèmes connus

  • Utilisation de l'API :

    • newrelic.interaction().end() solution de contournement : si vous avez déjà utilisé cette solution pour résoudre les problèmes de fermeture interaction, vous risquez désormais de voir des interactions supplémentaires et inutiles. Passez en revue votre utilisation pour garantir des résultats optimaux.
    • createTracer() changement de fonctionnalité : createTracer() ne maintient plus l'interaction ouverte ou ne déclenche plus le rappel. Si vous vous êtes appuyé sur cela pour suivre le code JavaScript, explorez des approches alternatives.
  • AjaxRequest association:

    • Exclusion potentielle de l'interaction : requests Ajax initiées vers la fin de l'interaction précédente peuvent désormais être exclues en raison de durées interaction raccourcies.
    • Extension manuelle : si vous avez besoin qu'une requête soit attribuée à une interaction spécifique, utilisez l'argument .interaction({waitForEnd: true}) ajouté à la fonction .interaction() pour maintenir l' interaction ouverte jusqu'à ce que la requête se déclenche, puis .end() l' interaction. Cela associera la demande à l’interaction.

Laisser les commentaires

Soumettez un problème GitHub pour signaler des bugs, requests de fonctionnalités ou des améliorations de performances.

Pour tout autre commentaire, partagez vos réflexions et suggestions en envoyant un e-mail à browser-agent@newrelic.com avec une ligne d'objet commençant par [SoftNav]: .

Droits d'auteur © 2025 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.