Disegnare una griglia di dati su tela - qual è il punto?

0

Per semplificare la mia domanda, supponiamo per un minuto che tutti gli utenti utilizzino l'ultima versione di Chrome per visualizzare un determinato sito Web.

Usando le ultime librerie (Polymer per esempio), posso rendere un elenco MOLTO grande di record in continua evoluzione nel DOM e creerò solo abbastanza elementi DOM per rendere visibile ciò che è visibile sullo schermo. Polymer renderizza anche l'elenco sulla GPU per me.

Riesco a vedere che ci sono molti investimenti in griglie di dati su tela ad esempio: link

La mia domanda è - dato quanto sopra - perché, o ho perso il punto?

    
posta Cheetah 23.03.2016 - 18:50
fonte

1 risposta

2

Anche se supponiamo che tutti i browser supportino le funzionalità necessarie per eseguire tutte queste operazioni in HTML ...

The purpose of this project is to address the Finance/Big Data community's desire for a high performance, unlimited row data-grid

Questo non è qualcosa per cui è stato progettato il DOM.

Per alcune app come quella finanziaria su cui lavoro, il rendering di una griglia complicata con migliaia di righe e dozzine di colonne e l'attivazione di un'enorme quantità di personalizzazione reattiva degli utenti finali è il front-end collo di bottiglia delle prestazioni.

In particolare, la virtualizzazione delle righe è assolutamente obbligatoria in queste applicazioni. Ciò significa che solo le righe attualmente visibili all'utente vengono sottoposte a rendering e le altre migliaia di righe nella griglia vengono completamente ignorate fino a quando l'utente non le visualizza. Il DOM non lo fa (e credo che non possa) fare questa ottimizzazione per te; devi scrivere almeno qualche javascript, non importa cosa ottenere prestazioni ragionevoli. Ma se scrivi il tuo riproduttore di griglia usando Canvas, è quasi banale rendere solo il sottoinsieme di righe / colonne attualmente visibile.

Inoltre, in un senso più generale, se il rendering della griglia si basa esclusivamente sul codice Javascript che richiama l'API Canvas (al contrario di qualsiasi dettaglio dell'algoritmo di rendering DOM), è molto più semplice implementare varie funzionalità e ottimizzazioni dell'interfaccia utente in un modo che funzionerà e funzionerà efficientemente su ogni browser con supporto Canvas di base.

    
risposta data 24.03.2016 - 00:44
fonte

Leggi altre domande sui tag