Web Components Tree Grid Live Data Updates

    La función Ignite UI for Web Components Actualizaciones de datos en tiempo real en Web Components cuadrícula de árbol se utiliza para habilitar actualizaciones en tiempo real o casi en tiempo real de los datos que se muestran dentro de la cuadrícula. Esto es extremadamente útil en aplicaciones donde los datos cambian constantemente, como los rastreadores del mercado de valores, los resultados deportivos en vivo o los paneles de IoT (Internet de las cosas). Puede IgcTreeGridComponent manejar miles de actualizaciones por segundo, sin dejar de responder a las interacciones del usuario.

    Web Components Live-data Update Example

    En el ejemplo siguiente se muestra el rendimiento de la cuadrícula de árbol cuando todos los registros se actualizan varias veces por segundo. Use los controles de la interfaz de usuario para elegir el número de registros cargados y la frecuencia de las actualizaciones. Introduzca los mismos datos en el Gráfico de columnas para experimentar las potentes capacidades de gráficos de Ignite UI for Angular. El Chart botón mostrará los datos de precios de categoría por región para las filas seleccionadas y el botón de Chart columna mostrará lo mismo para la fila actual.

    Data binding and updates

    Un servicio proporciona datos al componente cuando se carga la página y cuando se utiliza el controlador deslizante para recuperar una cierta cantidad de registros. Mientras que en un escenario real los datos actualizados se consumirían desde el servicio, aquí los datos se actualizan en código. Esto se hace para mantener la demostración simple y enfocarse en su objetivo principal: demostrar el rendimiento de la red.

    <igc-tree-grid id="grid1"></igc-tree-grid>
    
    public startUpdate() {
        const frequency = (document.getElementById('frequency') as IgcSliderComponent).value;
        this._timer = setInterval(() => {
            this.grid1.data = FinancialData.updateAllPrices(this.data);
        }, frequency);
        (document.getElementById('startButton') as IgcButtonComponent).disabled = true;
        (document.getElementById('stopButton') as IgcButtonComponent).disabled = false;
        (document.getElementById('chartButton') as IgcButtonComponent).disabled = true;
    }
    

    Un cambio en el valor del campo de datos o un cambio en el objeto de datos/referencia de recopilación de datos activará las canalizaciones correspondientes. Sin embargo, este no es el caso de las columnas, que están vinculadas a objetos de datos complejos. Para resolver la situación, proporcione una nueva referencia de objeto para el objeto de datos que contiene la propiedad. Ejemplo:

    <igc-tree-grid id="grid1">
        <igc-column field="price.usd"></igc-column>
    </igc-tree-grid>
    
    private updateData(data: any[]) {
        const newData = []
        for (const rowData of data) {
            rowData.price = { usd: getUSD(), eur: getEUR() };
            newData.push({...rowData});
        }
        this.grid.data = newData;
    }
    

    Plantillas

    La actualización de la vista funciona de la misma manera para columnas con una plantilla predeterminada y para columnas con una plantilla personalizada. Sin embargo, se recomienda mantener las plantillas personalizadas relativamente simples. A medida que crece el número de elementos en la plantilla, también aumenta el impacto negativo en el rendimiento.

    API References

    Additional Resources

    Nuestra comunidad es activa y siempre da la bienvenida a nuevas ideas.