Credo che innanzitutto sia doveroso ringraziare Marco, Paolo e Silvano di Devleap, per il loro esaustivo articolo sulle tecniche implementative per la paginazione dei record.
Come molti dilemmi legati allo sviluppo del software, il problema della paginazione deve essere risolto livello progettuale.
Occorre prevedere quello che l’utente vorrà ottenere dal nostro sistema informativo, in termini di conoscenza.
Non dobbiamo sottovalutare l’espansibilità della maschera di ricerca, sviluppiamo componenti modulari che possano anche essere implementati successivamente.
Implementiamo anche (e non solo) un meccanismo guidato (wizard) che consenta gli utenti di esprimere la loro ricerca nel modo più libero possibile: senza raggiungere la complessità di English Query, si possono inserire meccanismi intelligenti che consentano di produrre SQL dinamico in base a parametri inseriti dall’utente.
In sostanza bisogna ridurre il carico, cercando di offrire all’utente quanti più strumenti possibili per limitare il numero di record da scorrere.
Un altro aspetto è cercare di “prevedere” l’utente. Se successivamente all’accesso della prima pagina (da 10 record) carichiamo (in background) in una cache lato server le successive 10, e ci preoccupiamo di aggiornare la cache con le precedenti 10 e le successive 10 pagine rispetto alla pagina dell’utente, abbiamo una cache massima per utente di 20 * 10 = 200 righe. In alcuni casi è un carico tollerabile: con 100 utenti e con record da 1KB si avrebbe un carico di 100 * 200 * 1024, circa 20 MB, fronzoli a parte. per la cache delle pagine. Se la situazione peggiora possiamo cachare solo le key e accedere al db per i dati. Ovviamente è necessario preoccuparsi di avere sempre in cache la pagina che sarà richiesta ed aggiornare in background quelle che “potranno” essere richieste. Il risultato è un meccanismo di ricerca che da maggiore “experience” all’utente con un costo relativamente basso: in fondo lo fa Google, perchè non dobbiamo farlo noi?
ciao,
AS
NB: Post a contenuto parzialemente tecnologico
Cha figata! (si puo' dire?)
Ho traslocato il mio webServer in una amena località dell'insubria, togliendolo dai profumi dei capllettetti e del parmigiano-reggiano e soprattutto da una cdn da 128K, per una asettica webHouse insieme a tanti altri amici 1U che condividono gigabit di banda. Al mio buon matrix (il nome del'host, n.d.b.) sono stati assegnati 10 Mbit di banda garantita flat. Sigh... niente più notti passate insieme a ottimizzare le pagine asp.net... niente più controlli sul ViewState? Ovvviamente no... ma mancherà la sensazione diretta che solo una buona 128K puo' dare! Meno male che la tecologia ci viene incontro: ho infatti appena stipulato una bella flat sul GPRS: wow solo 46Kbit evvai... ritorno al futuro!
AS.
P.S.
Ha ragione Marco: Torino è una città bellissima e buonissima! Ma io oggi vado a vedere gli aquiloni!
