Domanda

Abbiamo alcuni dati (10-50 colonne, centinaia di migliaia di righe) che di solito visualizzare in Excel come un grafico a linee o un grafico a barre in pila.
Gli utenti vogliono essere in grado di ingrandire e ridurre del grafico per arrivare fino ai singoli campioni, ma questo tipo di operazioni davvero portare Excel in ginocchio.

Sto pensando di incorporare i dati in una pagina HTML, con linea JavaScript per gestire la visualizzazione nel browser. Qualcosa come il flotr JS grafici lib sarebbe stato sfruttato per le classifiche.

  1. Si tratta di un'idea stupida?
  2. è il browser pronti per questo tipo di carico?
  3. E 'questo un problema risolto che ho appena dovuto Googled più a fondo prima di chiedere?
È stato utile?

Soluzione

JavaScript è probabilmente pronto per questo, dal momento che javascript stessa ha ottenuto di essere abbastanza veloce. Nella mia esperienza i browser sono in genere non pronto a gestire molto grandi strutture DOM. Almeno si può aspettare di essere spendere un sacco di tempo a cercare di scoprire perché le cose sono lenti. Potrai anche scoprire che un sacco di "standard" javascript librerie (prototipo / jquery vengono in mente) non sono adatti per lavorare con "eccessivamente" grandi strutture DOM.

Siate pronti a scoprire che una determinata operazione è lenta su tutti i browser, ma alla fine si rivela essere per 3-4 motivi diversi sui diversi browser. Questo si basa sulla esperienza di lavorare con DOM moderatamente grandi dimensioni. Mentre certamente possibile, sta andando a costare un bel po 'di lavoro per ottenere un risultato decente.

Altri suggerimenti

mi raccomando il suggerimento di Adam per eseguire alcune analisi comparativa e l'ottimizzazione. Recentemente ho fatto un certo lavoro da tracciare dati di grandi dimensioni con Flot e sperimentato meno di prestazioni accettabili con Internet Explorer (per esempio l'intero browser appeso per ~ 20 anni sulla mia casella di sviluppo durante la stampa grafici).

Flot utilizza il canvas elemento per la creazione di grafici, che è supportata solo da Internet Explorer 9+. Flot fornisce il supporto per le vecchie versioni di Internet Explorer che utilizzano il ExplorerCanvas biblioteca. Questa libreria utilizza VML , disegno grafica manipolando elementi VML attraverso il DOM.

Uso della Internet Explorer 8 sceneggiatura profiler ho scoperto la maggior parte del tempo impiegato rendendo la trama è stato speso chiamando il nativo metodo insertAdjacentHTML per creare gli elementi VML. Perché non c'era niente che può essere fatto per migliorare le prestazioni di chiamate ai metodi nativi ho invece lavorato sulla riduzione del numero di punti dati tracciati (a sua volta ridurre gli elementi VML creati nel DOM) per ottenere prestazioni accettabili.

Se non avete bisogno o cura di supporto per le versioni precedenti di Internet Explorer quando si dovrebbe trovare Flot / Flotr è perfettamente in grado di gestire grandi quantità di dati. Ma se si ha bisogno di supportare queste versioni essere pronti a correre in problemi di prestazioni quando la creazione di grafici di grandi insiemi di dati.

è pronto Javascript per visualizzare grandi serie di dati?

Sì - il linguaggio è quello di un punto in cui senza sforzo, nel giusto ambiente, si occupa di record e manipola significativi, visualizzare, ecc loro. Il linguaggio di per sé soddisfacente.

E 'un'idea stupida?

No, in realtà si può contare su quasi tutti i computer per essere in grado di eseguire questo grado, croce lingua piattaforma.

è il browser pronto per questo tipo di carico?

Alcuni potrebbero essere - dipende da ciò che l'elaborazione e le azioni si sono effettivamente prendendo. Con Chrome utilizzando un veloce motore JavaScript, e sempre più persone pesantemente affidamento su di essa, la guerra velocità javascript è acceso. Penso che questo sia uno scenario di utilizzo perfettamente valido.

È necessario essere preparati per il benchmarking e l'ottimizzazione, che significa scavare nelle viscere di javascript. Si prega di diffondere i risultati in modo da carenze possono essere riparate.

-Adam

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top