Newsgroup: it.comp.lang.javascript
Titolo: leggere tanti dati testuali

Situazione: ho un file php che deve inserisr nella pagina una serie di 
dati (sostanzialmente le righe di una tabella sql), affinchï¿œ via 
Javascript si possano leggere, elaborare e rappresentare localmente.
 
Mi vengono in mente due modi di farlo:
 
1) Da PHP costruire una tabella html contenente i dati:
 
<table id="miatabella" style="display:hidden">
<tr><td>prima riga</td></tr>
<tr><td>seconda riga</td></tr>
<tr><td>terza riga</td></tr>
...
</table>
 
Da Javascript/jQquery leggere i dati riga per riga con un ciclo for.
 
2) Da PHP inserire i dati dentro uno script "finto":
 
<script id="mioscript" type="text/template">
prima riga
seconda riga
terza riga
...
</script>
 
Da Javascript/jQuery leggere il contenuto dello script e poi 
suddividerne le righe con .split("\n").
 
Della soluzione 1) mi disturba il dover inserire nella pagina web una 
tabella anche di migliaia di righe per poi nasconderla (magari ï¿œ solo 
una fisima mia).
 
Della soluzione 2) mi disturba il dover leggere tutto in una volta il 
contenuto dello script, che come ho detto sopra puï¿œ essere di migliaia 
di righe, e quindi mi preoccupa il consumo di memoria.
 
Quale delle due soluzioni esposte ï¿œ preferibile? Se ci sia una terza 
soluzione non lo so.
 
Grazie per le vostre indicazioni e grazie anche per quelle che mi avete 
giï¿œ dato per le mie richieste precedenti.


la rappresentazione migliore ï¿œ un json a mio avviso, che poi leggerai da 
js (o meglio ancora jquery che ha una gestione molto comoda a oggetti) 
via ajax.
Parliamo cmq di tanti dati...quanti? che come sistema funziona bene se 
stiamo su qualche mb, se iniziamo a parlare di decine o centinaia di mb, 
l'approccio deve essere (almeno parzialmente) diverso..
 
-- 
Z.

 soluzione non lo so.
 
Ce ne puï¿œ anche essere una quarta, e cosï¿œ via, ma tutto dipende da qual
ï¿œ il contesto; senza di quello non ï¿œ possibile darti indicazioni piï¿œ
precise.
 

 "splittato"?
 
Con un'istruzione del tipo
var righe=document.getElementById("mioscript").innerHTML.split("\n");
?
Stupidamente non ci avevo pensato.
 
 

 sia l'approccio giusto.
 
Aggiungo che in js posso anche fare delle animazioni, in php no.
In ogni caso il senso ï¿œ quello: far lavorare il server il meno 
possibile, e demandare tutte le operazioni di calcolo matematico (che 
come ho detto possono essere diverse da una visita alla successiva) ai 
client dei visitatori.
 

 client dei visitatori.
 
Per PHP esistono librerie grafiche leggerissime per il server, sia per 
grafici che epr altri tipi di output. Per quanto riguarda il carico del 
server pensa a fpdf: � una libreria che ti permette di creare dei pdf con 
una precisione notevole e l'elaborazione � immediata anche con varie pagine 
"dense" di dati, e con un carico sulla CPU che fatichi ad accorgertene. Al 
contrario, facendo raxccogliere e inviare a php tutti i dati grezzi rischi 
di crearti problemi di larghezza di banda, specie se come dicevi si tratta 
di migliaia di righe. Molto meglio fare elaborare il grafico a php e fargli 
inviare ai client solo il grafico, IME, a meno che tu non abbia proprio 
pochissima CPU e tantissima banda.
 
Io non ne ho mai usata una e quindi non so congiliarti, ma librerie per 
grafici in php ce ne sono a bizzeffe, il piu' � scegliere:
https://www.google.it/?gws_rd=cr&ei=PHKoUouRM4aOywPN0oGgBw#q=php%20graph%20library
 
-- 
"Un pasto senza vino e' come un giorno senza sole"
Anthelme Brillat Savarin 
 
 

 ?
 
No, intendo lato PHP:
 
    <script>
      <?php echo "var data = [1, 2, 3]" ?>
    </script>
 
Giusto per dire una cosa stupida. Se non ti scoccia fare una chimata
HTTP in piï¿œ, puoi anche avere qualcosa tipo:
 
    <script src="//blog/data.php"></script>
 
Dove `data.php` restituisce un contenuto javascript generato al momento
con, appunto, una variabile `data` o altro. Puoi anche usare
XMLHttpRequest per fare tale chiamata, o jquery, facendoti restituire un
formato JSON come diceva Z.
Nota che in entrambi i casi puoi passare argomenti, in modo da definire
la finestra temporale e/o i dati aggregati che ti servono.
 

 
 
Magari questo approccio e' ok per piccole moli di dati, ma quando i dati 
da analizzare crescono  ed i calcoli sono molto complessi, l'idea di 
elaborarli nel client non e' la soluzione ideale, soprattutto se ci sono 
da fare analisi a dati relazionati tra di loro.
 
In questi casi l'analisi viene di solito fatta sul server (o cluster a 
seconda delle necessita').
 
Comunque tornando in pista, il mio consiglio e' usare il server per 
elaborare i dati e spedire i risultati al client i risultati pronti ed 
usare una libreria tipo 
http://teethgrinder.co.uk/open-flash-chart-2/
 
 
 
-- 
Jeff