Paginazione Server-Side Informix & YUI

Proprio questa sera, durante la ri-organizzazione del mio archivio email, ho ritrovato una vecchia email del 2010 inviata ai miei colleghi il cui contenuto potrebbe interessare qualcuno di voi. A seguire la mail.

La stragrande maggioranza dei programmatori “moderni” o comunque in genere di chi non ha mai dovuto fare i conti con le risorse a propria disposizione, crede che tutto sia tendente all’infinito. Un aspetto cui spesso non è data la giusta importanza è l’accesso alla base dati, mi riferisco a query non ben progettate che solitamente portano allo stress del motore del base dati con conseguente spreco di risorse e performance che vanno a fondo.

Visto l’utilizzo pesante di Informix come motore di data base, ho sfruttato qualche minuto del mio tempo per ottimizzare uno degli aspetti che tocca le applicazioni web, in modo particolare mi riferisco alla presentazione dei dati all’utente in forma tabellare.

La maggior parte delle moderne Web Applications ha funzionalità che mostra dati attraverso l’ausilio di elementi desktop like come per esempio il Data Grid, quest’ultimo solitamente utilizzato per mostrare insieme di dati paginati con possibilità di ordinamento, editing, drill-down e drill-up, etc… Da parecchi anni i più diffusi motori RDBMS offrono funzionalità di paging dei dati, questo consente meno lavoro per il motore e meno passaggio di dati inutili sulla rete, per poi magari non essere mostrati.

Dalla versione 10 d’Informix (quella da noi utilizzata nel progetto) è stato aggiunto il supporto al paging dei dati con l’introduzione delle istruzioni SKIP e FIRST. Per maggiori dettagli consultare la documentazione ufficiale disponibile al link http://publib.boulder.ibm.com/infocenter/idshelp/v111/index.jsp?topic=/com.ibm.sqls.doc/sqls695.htm

Rimanendo in casa nostra, in particolare su CorMoNet, la query illustrata di seguito, estrae fuori dalla tabella personale, i primi 100 record. L’istruzione SKIP definisce l’offset di estrazione dei dati.

Per essere più concreti, ho realizzato una semplice applicazione (da tener presente come scheletro) che utilizza le YUI Library (http://developer.yahoo.com/yui/) e che gestisce i seguenti task:

  • Estrazione in “forma paginata” dei dati dalla base dati Informix;
  • Un servizio REST passa i dati in formato JSON al client;
  • L’oggetto Data Table di YUI:
    • Mostra i dati (ricevuti in formato JSON) in forma tabellare;
    • Consente l’ordinamento;
    • Consente di navigare tra le pagine dei dati;
    • Aggiunge una gestione degli eventi in puro stile Desktop Application

L’applicazione di esempio è disponibile all’indirizzo http://francisco.dev.local/users/amusarra/YUI/Informix/informix_serverdriven_pagination.html. Allego una serie di screenshot. Ho realizzato l’applicazione in tempi veramente brevi, mancano ovviamente i raffinamenti, il core è comunque quello che conta.

Figura 1 - Applicazione CRUD YUI/Informix

Figura 1 – Applicazione CRUD YUI/Informix

Per chiunque sviluppa Web Applications (in particolar modo Web 2.0) consiglio vivamente di fare utilizzo del browser Firefox e dell’estensione FireBug. Il boscaiolo non può andare a legna senza ascia o motosega (quest’ultima per quello più evoluto) !!!

Bye,
Antonio

Antonio Musarra

I began my journey into the world of computing from an Olivetti M24 PC (http://it.wikipedia.org/wiki/Olivetti_M24) bought by my father for his work. Day after day, quickly taking control until … Now doing business consulting for projects in the enterprise application development using web-oriented technologies such as J2EE, Web Services, ESB, TIBCO, PHP.

Potrebbero interessarti anche...