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
waitForEndn'est prise en charge qu'à partir de la v1.285.0. - L'option
targetPageLoadest 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.
|
Interaction already in progress | Renvoie un nouveau handle qui référence l'interaction actuellement active.
|
Targeting the initial page load | Lorsque vous utilisez l'option
|
Comportements clés
Comportement | Description |
|---|---|
Plusieurs handles sont indépendants | Chaque appel à |
Impossible d'écraser les interactions | Si un utilisateur clique sur un bouton (démarrant une interaction) et que votre code appelle ensuite |
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 | 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 |
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 |
|---|---|
Objet JSON | Facultatif : spécifie les options qui affectent le comportement de l’interaction.
|
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.