Carissimi,
una certa pagina jsp della mia web application Java mostra una lista di circa 1500 clienti, ovviamente con una opportuna barra di scorrimento laterale e mostrando per ciascuno solo le due o tre informazioni principali (nome, cognome, telefono); per diverse ragioni devono essere visibili tutti e non è opportuno fare una paginazione. Tali clienti vengono mostrati nel modo che segue: una servlet preleva i dati dal db tramite una opportuna classe di business, invia la list alla pagina sotto forma appunto di "list", ed all'interno della pagina jsp un ciclo iterativo scritto usando il comando foreach delle librerie JSTL provvede a "creare" tutte le righe "scorrendo" appunto la list. Sappiate che su ogni riga i dati effettivi del cliente sono circa un decimo del volume di codice associato a ciascuna riga (si devono definire gli stili delle righe, poi accanto a ciascun cliente ci sono pulsanti di eliminazione, dettaglio e modifica ecc ecc).
In questo modo, al caricamento della pagina listaClienti.jsp, vengono inviati circa 1.5 Mb di dati dal server al client. E questo non è cosa buona e giusta, sia per la banda di traffico usato (forse va bene per le tasche del provider!) che per i tempi di apertura. Pensate un pò che invece se riuscissi ad inviare la "list" contenente i dati desiderati al client facendo poi "formare" la lista clienti con lo scorrimento di tale "list" direttamente su tale client, ho calcolato che i dati scambiati tra client (scusate se ripeto la parola client) e server sarebbero di circa 110 kb, ovvero meno di un decimo!
Voi mi direte "usa javascript e le sue funzioni di iterazione": invia al client la "list" clienti, il codice della pagina ed una funzione javascript che al caricamento della pagina scorra l'oggetto "list" in modo tale da creare la pagina direttamente sul client, e il gioco è fatto.
Il problema è che però su vostri consigli sto creando anche la versione ad alta accessibilità della mia applicazione, quindi senza javascript. Perciò, in modo molto mirato, vi chiedo:
Senza scomodare Javascript, esiste un modo per far eseguire azioni all'interno di una pagina web, dopo che la stessa pagina sia stata caricata quindi azioni client-side?
Grazie a tutti, spero di essermi ben spiegato.