A volte capita di a vere una lista con moltissimi oggetti e i doverli mostrare all'utente. Sebbene paginare questi dati o caricarli solo su richiesta è sicuramente una buona scelta, questa strada non è sempre percorribile.
Renderizzare centinaia o migliaia di elementi renderebbe la pagina molto lenta al limite dell'inusabile. In questi casi può tornare utile la funzionalità di scrolling di Angular CDK. Questa funzionalità virtualizza lo scrolling renderizzando solo gli elementi visibili, alcuni elementi prima e alcuni elementi dopo. Mentre scrolliamo gli elementi, in base alla posizione dello scrolling la funzionalità calcola quali elementi della lista devono essere renderizzati e li mette in binding con quelli già creati sostituendone quindi i dati. In questo modo il binding è velocissimo in quanto si riusano sempre gli stessi elementi cambiandone solo il binding. Il prossimo codice mostra un esempio di utilizzo della funzionalità.
<cdk-virtual-scroll-viewport itemSize="30"> <div *cdkVirtualFor="let item of items">{{item}}</div> </cdk-virtual-scroll-viewport>
Il component cdk-virtual-scroll-viewport è il contenitore degli elementi, mentre la direttiva cdkVirtualFor è come ngFor, ma virtualizzata. La proprietà itemSize è molto importante in quanto specifica che ogni elemento è alto 30 pixel e quindi il processo di calcolo degli elementi da visualizzare in base alla posizione dello scrolling è estremamente veloce.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Utilizzare la funzione EF.Parameter per forzare la parametrizzazione di una costante con Entity Framework
Centralizzare gli endpoint AI Foundry con Azure API Management
Creare una libreria CSS universale: Clip-path
Managed deployment strategy in Azure DevOps
Sfruttare GPT-4o realtime su Azure Open AI per conversazioni vocali
Configurare automaticamente un webhook in Azure DevOps
Gestire progetti .NET + React in .NET Aspire
Eliminare record doppi in Sql Server
Fissare una versione dell'agent nelle pipeline di Azure DevOps
Eliminare una project wiki di Azure DevOps
Utilizzare l'espressione if inline in una pipeline di Azure DevOps
Supportare la crittografia di ASP.NET Core con Azure Container App
I più letti di oggi
- Eseguire query con LINQ to SQL
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- Gestione file Javascript in Blazor con .NET 9
- Documentare i servizi REST con Swagger e OpenAPI con .NET 9
- #VS2017 Community è già disponibile al download da questa pagina https://aspit.co/bgb
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!