Sistema di votazioni con AJAX

di: Pasquale Congiustì     07 Aprile 2008

Negli ultimi articoli abbiamo visto alcuni elementi di design tipici delle Web application più moderne (per esempio la ricerca dinamica). In diverse occasioni abbiamo rimarcato come la sempre più massiccia presenza di tecniche AJAX ha reso le funzionalità dei siti Web più usabili e accattivanti allo stesso tempo.

Attraverso queste tecniche i Web designer si sono cimentati nello sviluppo di elementi (spesso noti come widget) che ricorrono in tutti i più importanti siti Web, in particolare nei siti di social network o di condivisione (foto e video).

Quello che vedremo in questo articolo è un elemento non proprio innovativo, ma che attraverso la tecnica AJAX cambia rendendo l'accesso a questa funzione più fluida rispetto al suo antenato non-AJAX: parliamo di un widget per permettere agli utenti di votare una risorsa.

L'elemento non è innovativo nel senso stretto del termine in quanto negli anni lo si è visto in diverse salse; innovativo è il modo in cui oggi viene proposto utilizzando tecniche AJAX che noi vedremo affiancate alla tecnologia lato server Java.

Modifiche al sistema

Per focalizzare l'attenzione sull'elemento di votazione, riutilizzeremo un servizio che abbiamo già sviluppato, la tag cloud in java, estendendolo con la nuova funzionalità, che sarà utilizzabile con qualsiasi progetto adattando i suggerimenti che vedremo nei prossimi paragrafi.

Quello che vogliamo realizzare è un sistema che permetta all'utente di votare la risorsa, in maniera asincrona (quindi, rimanendo all'interno della pagina Web). In più vogliamo rendere accattivante la funzionalità, permettendo all'utente di utilizzare un "sistema a stelline" che gli consenta visivamente di effettuare il voto cliccando sul numero di stelle che desidera. Infine, l'utente ha un suggerimento che cambia a ogni stellina, identificando in maniera testuale il voto.

A dirla tutta si tratta del sistema che oggi troviamo in tutti i siti di condivisione (video, foto, notizie, ecc) più o meno importanti.

Modifiche database

Come al solito partiamo dalle modifiche che dovremo apportare alla base di dati. Riprendendo l'articolo citato in precedenza ci preoccuperemo di aggiungere due campi alla tabella che mantiene le informazioni sulla risorsa persistenti. In questo modo ci preoccupiamo di registrare il numero di voti effettuati e il voto totale (e quindi siamo in grado di definire la media).

L'utilizzo di questi campi rende l'impatto della modifica minimale, mantenendo efficacia nel nostro scopo. Applicato al nostro esempio avremo:

Modifica al database

ALTER TABLE 'tagcloud'.'resource'
ADD COLUMN 'totalrating' INTEGER UNSIGNED NOT NULL DEFAULT 0 AFTER 'description',
ADD COLUMN 'totalVote' INTEGER UNSIGNED NOT NULL DEFAULT 0 AFTER 'totalrating';

Guide Java

Guida Apache Struts

Il primo e più utilizzato tra i framework MVC del mondo Java,...

Guida Java Spring

Scoprire il lightweight container più famoso del mondo Java....

Guida Java 6

Prendendo le mosse dalla guida Java, già presente su HTML.it,...

Altre guide

Newsletter @Programmazione

Ogni mese, direttamente nella tua e-mail: articoli, script e guide su Java, Visual Basic, VB.Net ed i più diffusi linguaggi di programmazione.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Corso Google AdWords Base

25 Giugno 2012 a Milano
Disponibilità: 7 Posti

Corso Google AdWords Base

05 Giugno 2012 a Roma
Disponibilità: 7 Posti