Skip to main content
Únase a nosotros en TDX, en San Francisco, o en Salesforce+ los días 5 y 6 de marzo en la conferencia para desarrolladores sobre la era de agentes de IA. Registrarse ahora.

Trabajar con datos

Objetivos de aprendizaje

Después de completar esta unidad, podrá:

  • Describir las ventajas de optimizar la recuperación de datos.
  • Describir las ventajas de almacenar los datos en caché.

Superar retos de rendimiento únicos

Los componentes web Lightning se ejecutan en el cliente, en una sola página, donde se crean y destruyen según sea necesario junto con el resto de componentes que funcionan con los mismos datos. Esto significa que los componentes web Lightning pueden plantear retos de rendimiento únicos para los desarrolladores. Veamos cómo afectan estas características al rendimiento y algunas prácticas recomendadas que permiten optimizar el desempeño de sus componentes Lightning.

En primer lugar, hablemos de optimizar la recuperación y el almacenamiento en caché de los datos.

Optimizar la recuperación de los datos

Un componente sin datos no es muy útil. Con los componentes web Lightning, existen distintas opciones disponibles a la hora de recuperar datos desde el servidor. Estas son algunas maneras de optimizar los ciclos del servidor.

  1. Utilice Lightning Data Service o datos almacenados en caché siempre que sea posible.
  2. Antes de hacer una llamada al servidor, asegúrese de que no hay otra forma de obtener los datos.
    • Siempre que sea posible, considere la opción de enviar los datos entre componentes mediante atributos, eventos o métodos en lugar de recuperar los mismos datos en distintos componentes.
    • Si varios componentes de una página determinada recuperan los mismos datos, considere la opción de crear un componente de servicio que no contenga elementos de IU y pueda consultar datos una vez de forma que pueda enviarlos al resto de componentes.
  1. Cuando haga una llamada al servidor, limite los campos y filas del conjunto de resultados.
    • SELECCIONE solamente los campos que necesite.
    • Defina un LÍMITE para la consulta, no permite que devuelva muchísimas filas a la vez.
    • Implemente un método de paginación para cuando las consultas tengan grandes conjuntos de resultados.
  1. Realice una carga "perezosa" de los datos a los que se accede de vez en cuando. No cargue previamente los datos que pueda necesitar el usuario. Coloque los componentes a los que se ha accedido más recientemente en una pestaña secundaria en la que puede que el usuario no haga clic.
  2. No realice una llamada al servidor para filtrar u ordenar los datos que ya tiene en el cliente a menos que esté trabajando con datos repartidos en páginas. Las matrices de JavaScript contienen funciones integradas para hacer cosas como ordenar, filtrar y buscar valores.
  3. En lugar de usar Apex, utilice Lightning Data Service y la API de la IU para recuperar los registros, y recupere también las vistas de lista, los metadatos y los valores de listas de selección.
  4. Al usar el adaptador "wire" getRecord (que forma parte de la API de la IU), solicite únicamente los campos que necesite el componente. Sea explícito. Por ejemplo, si el componente requiere un campo, solicite únicamente ese campo.
    @wire(getRecord, { recordId:'$recordId', fields:['Contact.Name'] });
  5. No solicite un registro según el formato a menos que esos datos sean totalmente necesarios. Los formatos son un conjunto de campos que gestiona el administrador y pueden cambiar en cualquier momento. Los formatos son muy caros porque a menudo contienen cientos de campos.
    @wire(getRecord, { recordId:'$recordId', layoutTypes:['Full'] });
Nota

No utilice getRecordUi a menos que sea absolutamente necesario. La respuesta incluye metadatos que suelen ser entre 100 y 1000 veces más grandes que la carga útil de datos. Si solo necesita registrar datos, utilice getRecord.

Mejorar el almacenamiento en caché de los datos

La composición de aplicaciones es un método eficaz de desarrollar aplicaciones mediante el ensamblaje de componentes independientes. Sin embargo, sin una buena planificación, la naturaleza autónoma de los componentes que ensambla puede tener un impacto negativo en el rendimiento. Por ejemplo, si todos los componentes que crea realizan sus propias llamadas aisladas al servidor para recuperar los datos que necesitan, hará muchas llamadas al servidor. Es más eficiente realizar una sola llamada más grande que hacer muchas pequeñas.

El almacenamiento en caché de los datos del cliente mejora el rendimiento porque se comparten los datos entre componentes, lo que reduce en gran medida la cantidad de ciclos del servidor. LWC tiene dos mecanismos integrados para el almacenamiento en caché del cliente: Lightning Data Service y métodos de Apex que se pueden guardar en caché. Si ninguno de esos métodos le sirve, también puede implementar una solución personalizada de almacenamiento en caché.

Lightning Data Service

Lightning Data Service ofrece un método de registro gestionado: usted no es el responsable de escribir una lógica de acceso a datos de Apex. También se encarga de la seguridad al comprobar la accesibilidad de los registros y campos. El marco de trabajo es el responsable de gestionar los registros. Esto incluye obtenerlos del servidor cuando se solicitan por primera vez, almacenarlos en una caché del cliente de alta eficiencia, compartirlos entre todos los componentes que los solicitan y enviar los cambios al servidor y a las entradas de caché no válidas cuando dependan de los cambios en los datos de Salesforce.

Si otro componente requiere después más campos, estos campos se cargan de forma transparente y se añaden al registro de la caché. A diferencia de las acciones que pueden almacenar en la caché cualquier tipo de respuesta que devuelve un método de Apex, Lightning Data Service guarda en caché muchos tipo de datos de la API de interfaz de usuario: registros, esquema, metadatos, metadatos de formato, listas de registros, metadatos de listas, etc. Lightning Data Service también mejora la uniformidad de la interfaz de usuario: cuando un componente actualiza un registro, el resto de componentes que usan ese registro reciben un aviso y, en la mayoría de casos, se actualizan automáticamente.

Métodos de Apex que se pueden almacenar en caché

Si no puede usar Lightning Data Service, utilice Apex. Un método de Apex que se puede almacenar en caché es una acción del servidor cuya respuesta se almacena en la caché del cliente de forma que se pueda acceder a las solicitudes posteriores del mismo método del servidor con el mismo conjunto de argumentos desde la caché y no desde el servidor.

Los métodos de Apex que se pueden almacenar en caché permiten acceder a los datos con un enfoque tradicional de llamada de procedimiento remota (RPC). Se implementa lógica en Apex que luego se expone en forma de método invocable de forma remota. Los métodos de Apex que se pueden almacenar en caché permiten guardar en caché prácticamente cualquier cosa, independientemente de lo que devuelvan las llamadas del método del servidor. La directriz general es almacenar en caché (marcar como disponible para guardar) cualquier acción que sea idempotente y no cambie.

La creación de un método de Apex que se pueda almacenar en caché es bastante fácil. Solo tiene que anotar los métodos de Apex con @AuraEnabled(cacheable=true).

En la versión 55.0 y versiones posteriores de la API, puede usar la anotación @AuraEnabled(scope='global') junto con @AuraEnabled(cacheable=true) para activar métodos de Apex a fin de que se almacenen en una caché global.

@AuraEnabled(scope='global' cacheable=true)
public static someObject getIceCream(String flavor) {
  // your code here
}

En la siguiente unidad veremos cómo mostrar los datos solo cuando sea necesario mediante la revelación progresiva y la renderización condicional.

Recursos

Comparta sus comentarios sobre Trailhead en la Ayuda de Salesforce.

Nos encantaría conocer su experiencia con Trailhead. Ahora puede acceder al nuevo formulario de comentarios cuando quiera desde el sitio de la Ayuda de Salesforce.

Más información Continuar para compartir comentarios