• /
  • 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

interaction (API SPA)

Syntaxe

newrelic.interaction([JSON object $options])

Renvoie un nouvel objet handle lié à l'interaction SPA actuelle, ou une nouvelle interaction s'il n'en existe pas.

Exigences

  • L'API .interaction() requiert l'agent Browser Pro+SPA (v963 ou version ultérieure).
  • Fournir un objet $options à l'API n'est pris en charge que dans les versions v1.285.0 et ultérieures.
  • L'option waitForEnd n'est prise en charge qu'à partir de la v1.285.0.
  • L'option targetPageLoad est uniquement prise en charge dans la v1.315.0 et les versions ultérieures.

Si vous installez l'agent browser via npm et que vous créez un agent personnalisé avec des fonctionnalités sélectionnées, vous devez activer la fonctionnalité spa lors de la création de l'instance Agent. Dans le tableau features, ajoutez ce qui suit :

import { Agent } from '@newrelic/browser-agent/loaders/agent'
import { Spa } from '@newrelic/browser-agent/features/spa';
const options = {
info: { ... },
loader_config: { ... },
init: { ... },
features: [
... other features ...
Spa
]
}
new Agent(options)

Pour plus d'informations, consultez la documentation d'installation du navigateur npm.

Description

L'appel d'API interaction() du monitoring de SPA vous permet de contrôler et de personnaliser les interactions SPA suivies par l'agent de navigateur. Utilisez cette API pour :

  • Créez manuellement des interactions personnalisées pour les modèles que l'agent du navigateur ne détecte pas automatiquement.
  • Modifiez les interactions existantes en ajoutant des attributs personnalisés, en les nommant, ou en contrôlant le moment où elles se terminent.

Comment ça marche

Lorsque vous appelez newrelic.interaction(), vous obtenez un handle (un objet JavaScript) qui fait référence à un événement BrowserInteraction. Ce handle vous permet d'appeler des méthodes telles que .save(), .ignore(), .setName() et .setAttribute() pour contrôler l'interaction.

Comportement de l'API par état d'interaction

L'API se comporte différemment selon l'état actuel de l'interaction :

État

Comportement

No interaction in progress

Crée une nouvelle interaction personnalisée.

  • L'interaction personnalisée se ferme automatiquement lorsque la navigation douce suivante se termine (en suivant les heuristiques SPA par défaut), sauf si vous définissez waitForEnd: true.
  • Utilisez ceci pour suivre les actions de l'utilisateur qui ne déclenchent pas de changements de route, telles que l'ouverture d'une modale ou le développement d'une section.

Interaction already in progress

Renvoie un nouveau handle qui référence l'interaction actuellement active.

  • Vous pouvez créer plusieurs handles pour la même interaction. Cela est utile lorsque vous souhaitez contrôler différents aspects d'une interaction depuis différentes parties de votre code.
  • L'interaction existante continue — cette API ne peut pas remplacer ou écraser une interaction déjà en cours.
  • Fonctionne à la fois pour les interactions déclenchées par l'utilisateur (comme les clics) et les interactions personnalisées déclenchées par l'API.

Targeting the initial page load

Lorsque vous utilisez l'option targetPageLoad: true, le handle fait toujours référence à l'événement BrowserInteraction de chargement initial de la page.

  • C'est le seul moyen d'accéder à l'interaction de chargement initial de la page et de la modifier.
  • Avant cette option, le chargement initial de la page n'était pas accessible via l'API.

Comportements clés

Comportement

Description

Plusieurs handles sont indépendants

Chaque appel à newrelic.interaction() crée un objet handle distinct, même lorsqu'il fait référence à la même interaction sous-jacente. Les méthodes appelées sur un handle n'affectent pas les autres handles, mais elles modifient toutes le même événement BrowserInteraction.

Impossible d'écraser les interactions

Si un utilisateur clique sur un bouton (démarrant une interaction) et que votre code appelle ensuite newrelic.interaction(), l'API renvoie un handle pour l'interaction de clic — elle n'en crée pas une nouvelle. L'agent du navigateur priorise les interactions utilisateur réelles.

Les handles deviennent inactifs

Une fois qu'une interaction est terminée, tous les handles qui la référencent deviennent inactifs. Les appels de méthode sur des handles inactifs n'ont aucun effet et ne lèvent pas d'erreurs.

Utilisez waitForEnd pour un contrôle précis

Par défaut, les interactions se ferment en fonction des heuristiques SPA (changements de route, fin des requêtes AJAX, stabilisation du DOM). Définir waitForEnd: true maintient l'interaction ouverte jusqu'à ce que vous appeliez explicitement .end() sur le handle.

Prudence

L'utilisation de waitForEnd: true avec targetPageLoad: true maintiendra l'événement BrowserInteraction de chargement initial de la page ouvert indéfiniment jusqu'à ce que .end() soit appelé, modifiant la définition par défaut de l'événement BrowserInteraction de chargement initial de la page. Il s'agit d'un cas d'utilisation avancé et il doit être utilisé avec précaution.

Paramètres

paramètres

Description

$options

Objet JSON

Facultatif : spécifie les options qui affectent le comportement de l’interaction.

  • waitForEnd - (v1.285.0+) La valeur par défaut est false. Pour maintenir l'interaction ouverte de force jusqu'à ce que la méthode .end soit appelée sur son handle, définissez-le sur true. Une fois qu'une interaction est marquée avec ceci, cela ne peut pas être annulé.
  • targetPageLoad - (v1.315.0+) La valeur par défaut est false. Si défini sur true, le handle renvoyé est lié à l'interaction de chargement initial de la page au lieu de créer ou de cibler une interaction de navigation douce. C'est le seul moyen de cibler l'interaction initialPageLoad.

Valeurs de retour

Cette méthode renvoie un objet JS natif qui pointe vers un événementBrowserInteraction potentiel. Chaque fois que cette méthode est appelée pour le même BrowserInteraction alors qu'elle n'est pas encore terminée, un nouvel objet est créé, mais il fait toujours référence à la même interaction.

Exemples

Les méthodes de l'API SPA peuvent être appliquées à la sortie renvoyée par newrelic.interaction(). Vous pouvez affecter la valeur retournée ou le handle à une autre variable pour une utilisation ultérieure. Par exemple :

let myInteraction = newrelic.interaction();
...
myInteraction.save();

Pour obtenir une liste des API d’interaction, consultez Suivre les applications monopages.

Bien que le handle nommé puisse être enregistré et utilisé en dehors d'une interaction, notez que les méthodes SPA n'auront aucun effet une fois l'interaction terminée.

La durée de l’interaction peut également être personnalisée à l’aide de la méthode suivante :

// Say an interaction is already open from a user click.
const userInteraction = newrelic.interaction({ waitForEnd: true }); // grabs the current interaction in-progress & keep it open
// URL changes & DOM is modified. Because of those condition being met, interaction will be saved but is kept open.
fetch('myurl.com/endpoint').then(() => userInteraction.end()) // associate this request to the interaction before completing this BrowserInteraction
const myCustomIxn = newrelic.interaction({ waitForEnd: true }) // create a new api-triggered interaction
// This interaction will be kept open indefinitely until `.end` is called, and no new interaction will start, custom or otherwise. AjaxRequest will continue to buffer under this interaction until it is closed.
Droits d'auteur © 2026 New Relic Inc.

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