• /
  • EnglishEspañolFrançais日本語한국어Português
  • Inicia sesiónComenzar ahora

Te ofrecemos esta traducción automática para facilitar la lectura.

En caso de que haya discrepancias entre la versión en inglés y la versión traducida, se entiende que prevalece la versión en inglés. Visita esta página para obtener más información.

Crea una propuesta

interaction (SPA API)

Sintaxis

newrelic.interaction([JSON object $options])

Devuelve un nuevo objeto de controlador que está vinculado a la interacción SPA actual, o una nueva interacción si no existe ninguna.

Requisitos

  • La API .interaction() requiere el agente Browser Pro+SPA (v963 o superior).
  • Proporcionar un objeto $options a la API solo se admite en las versiones v1.285.0 y posteriores.
  • La opción waitForEnd solo se admite en la v1.285.0 y superiores.
  • La opción targetPageLoad solo se admite en v1.315.0 y superiores.

Si está instalando el agente del browser a través de npm y creando un agente personalizado con funciones seleccionadas, debe habilitar la función spa al crear la instancia Agent. En el arreglo features, agregue lo siguiente:

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)

Para obtener más información, consulte la documentación de instalación del navegador npm.

Descripción

La llamada API interaction() de monitoreo de SPA le permite controlar y personalizar las interacciones de SPA rastreadas por el agente del browser. Utilice esta API para:

  • Crea manualmente interacciones personalizadas para los patrones que el agente del browser no detecta automáticamente.
  • Modifique las interacciones existentes agregando atributos personalizados, asignándoles un nombre o controlando cuándo se completan.

Cómo funciona

Cuando llamas a newrelic.interaction(), obtienes un handle (un objeto de JavaScript) que hace referencia a un evento BrowserInteraction. Este identificador le permite llamar a métodos como .save(), .ignore(), .setName() y .setAttribute() para controlar la interacción.

Comportamiento de la API por estado de interacción

La API se comporta de manera diferente dependiendo del estado actual de la interacción:

Estado

Comportamiento

No interaction in progress

Crea una nueva interacción personalizada.

  • La interacción personalizada se cierra automáticamente cuando se completa la siguiente navegación suave (siguiendo las heurísticas predeterminadas de SPA), a menos que establezca waitForEnd: true.
  • Utilice esto para rastrear las acciones del usuario que no desencadenan cambios de ruta, como abrir un modal o expandir una sección.

Interaction already in progress

Devuelve un nuevo identificador que hace referencia a la interacción actualmente activa.

  • Puedes crear múltiples manejadores para la misma interacción. Esto es útil cuando desea controlar diferentes aspectos de una interacción desde distintas partes de su código.
  • La interacción existente continúa: esta API no puede reemplazar ni sobrescribir una interacción que ya está en curso.
  • Funciona tanto para interacciones activadas por el usuario (como clics) como para interacciones personalizadas activadas por la API.

Targeting the initial page load

Cuando utiliza la opción targetPageLoad: true, el handle siempre hace referencia al evento BrowserInteraction de la carga inicial de la página.

  • Esta es la única forma de acceder y modificar la interacción de carga inicial de la página.
  • Antes de esta opción, la carga inicial de la página no era accesible a través de la API.

Comportamientos clave

Comportamiento

Descripción

Los múltiples manejadores son independientes

Cada llamada a newrelic.interaction() crea un objeto manejador independiente, incluso cuando hace referencia a la misma interacción subyacente. Los métodos llamados en un handle no afectan a otros handles, pero todos modifican el mismo evento BrowserInteraction.

No se pueden sobrescribir las interacciones

Si un usuario hace clic en un botón (iniciando una interacción) y su código luego llama a newrelic.interaction(), la API devuelve un identificador de la interacción de clic — no crea una nueva. El agente del browser prioriza las interacciones reales del usuario.

Los identificadores se vuelven inactivos

Una vez que se completa una interacción, cualquier identificador que haga referencia a ella se vuelve inactivo. Las llamadas a métodos en identificadores inactivos no tienen efecto y no lanzan errores.

Use waitForEnd para un control preciso

De forma predeterminada, las interacciones se cierran en función de las heurísticas de SPA (cambios de ruta, finalización de AJAX, estabilización del DOM). Establecer waitForEnd: true mantiene la interacción abierta hasta que llames explícitamente a .end() en el handle.

Advertencia

Usar waitForEnd: true junto con targetPageLoad: true mantendrá el evento BrowserInteraction de carga inicial de la página abierto indefinidamente hasta que se llame a .end(), cambiando la definición predeterminada del evento BrowserInteraction de carga inicial de la página. Este es un caso de uso avanzado y debe usarse con precaución.

Parámetros

Parámetro

Descripción

$options

Objeto JSON

Opcional: especifica opciones que afectan el comportamiento de la interacción.

  • waitForEnd - (v1.285.0+) El valor predeterminado es false. Para mantener la interacción abierta de forma forzada hasta que se llame al método .end en su manejador, establézcalo en true. Una vez que una interacción se marca con esto, no se puede deshacer.
  • targetPageLoad - (v1.315.0+) El valor predeterminado es false. Si se establece en true, el identificador devuelto se vincula a la interacción de carga de página inicial en lugar de crear o apuntar a una interacción de navegación suave. Esta es la única manera de establecer como objetivo la interacción initialPageLoad.

Valores de retorno

Este método devuelve un objeto JS nativo que apunta a un posible eventoBrowserInteraction . Cada vez que se llama a este método para el mismo BrowserInteraction mientras aún no finalizó, se crea un nuevo objeto, pero aún hace referencia a la misma interacción.

Ejemplos

Los métodos de la API de SPA se pueden aplicar a la salida devuelta de newrelic.interaction(). Puede asignar el valor devuelto o el identificador a otra variable para su uso posterior. Por ejemplo:

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

Para ver una lista de las API de interacción, consulte Rastrear aplicaciones de una sola página.

Si bien el identificador nombrado se puede almacenar y usar desde fuera de una interacción, tenga en cuenta que los métodos SPA no tendrán efecto una vez finalizada la interacción.

La duración de la interacción también se puede personalizar mediante el siguiente método:

// 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.
Copyright © 2026 New Relic Inc.

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