Con questo articolo vorrei presentare una parte molto importante del framework jQuery, ovvero la User Interface. Ebbene si, jQuery offre gli strumenti per assemblare facilmente l’interfaccia grafica della nostra applicazione web. La parte del framework che offre questa possibilità si chiama jQuery UI (http://jqueryui.com). Con poche righe di codice è possibile creare controlli quali ad esempio Accordion, struttura a Tab, Slider, Dialog Box, Date Picker, ecc…
Ad ogni controllo sono associati diversi eventi (grazie ai quali è possibile interagire con esso) e diverse proprietà (per cambiare l’aspetto o il suo comportamento). Oltre ai controlli (denominati widgets) jQuery UI offre la possibilità di avere interazione con componenti della pagina web, rendendoli trascinabili (drag & drop), ordinabili, ecc… Leggi tutto »
Le entità fondamentali utilizzate in questo articolo sono le classi java TimerTask e Canvas. L’orologio è costruito attraverso due classi: Quadrante e Orologio.
La classe Quadrante estende Canvas e si occupa del disegno delle lancette e del quadrante, mentre la classe Orologio estende TimerTask e si occupa dell’ottenimento dell’ora di sistema. Leggi tutto »
Realizziamo utilizzando il framework jQuery un filtro di ricerca su un insieme di dati memorizzati su un database. Il sistema dovrà funzionare nel seguente modo: quando un utente digita del testo nella search box, tramite Ajax scarichiamo i dati corrispondenti ai record filtrati e li scriviamo sotto il search box.
L’esempio è costituito da 4 file:
- jquery.js (file del framework, necessario per utilizzare jQuery)
- ricerca.html (file di presentazione dei dati)
- style.css (foglio di stile per la pagina di presentazione dei dati)
- search.js (file contenente il nostro codice javascript che si occupa di scaricare i dati tramite Ajax)
- getDati.php (script lato server che ci fornirà i dati filtrati)
Leggi tutto »
Il problema fondamentale delle applicazioni in ambito web è quello della compatibilità del codice su diverse architetture e diversi browser che gli utenti della rete usano per navigare. Utilizzare la tecnologia Ajax vuol dire fare un largo uso di Javascript: qui nasce il problema. Questo linguaggio, infatti, non è molto standardizzato. Questo vuol dire che, ad esempio, per ottenere uno stesso risultato su due browser diversi è necessario, a volte, scrivere del codice leggermente diverso, poiché può capitare che un certo oggetto Javascript utilizzato nel codice non venga supportato correttamente da un certo browser, mentre viene supportato ottimamente da altri browser. L’utilizzo di un Framework Javascript ci consente di concentrarci esclusivamente sulla logica della nostra applicazione, non preoccupandoci di gestire la sua compatibilità né di perdere troppo tempo per realizzare un piccolo effetto grafico, ecc.
Il framework che presento ed userò in questo articolo è jQuery, un sistema ottimo, utilizzato anche nelle applicazioni di Google. È gratuito e si può scaricare liberamente dal sito ufficiale. Vediamo ora l’articolo vero e proprio
Leggi tutto »
Vediamo un esempio pratico di utilizzo della tecnologia Ajax in un form html. Supponiamo di voler creare un form che permette ad un utente di inserire, tra i vari dati, anche la sua regione e la sua città di residenza. Creiamo dunque due select box, una per la regione ed una per le città. Vogliamo usare Ajax per fare in modo che nel momento in cui l’utente seleziona la regione, nella select box delle città compaiano automaticamente solo le città della regione selezionata, senza fare alcun refresh della pagina. Il sistema è schematizzato in questa figura:

Analizziamo di seguito un filtro passa-basso costituito da un induttore ed un condensatore, ricavando le formule pratiche per il dimensionamento dei componenti, utili anche nel caso di filtro passa-alto, analizzato nella pagina successiva.

Il circuito affianco è un filtro passa-basso del 2° ordine (ossia con attenuazione di 12 dB per ottava). Supponendo che l’altoparlante abbia una impedenza nominale di W ohm, andiamo a calcolare la tensione ai suoi capi:
Ormai il web è formato prevalentemente da pagine dinamiche, ossia pagine il cui contenuto viene generato al momento della loro richiesta da parte di un utente. Ad esempio, quando facciamo una richiesta di una pagina PHP attraverso il browser, l’interprete PHP residente sul server esegue il codice sorgente contenuto nel file richiesto e ci restituisce il risultato di tale esecuzione. Lo svantaggio evidente di questo meccanismo è la necessità di richiedere e caricare l’intera pagina ogni volta che occorre aggiornare i dati in essa contenuti. Leggi tutto »
Tramite le funzioni della libreria GD2 possiamo facilmente creare e modificare immagini. Nelle applicazioni web ci può essere molto utile una funzione in grado di ridimensionare o convertire il formato di immagini. Un possibile uso potrebbe essere, ad esempio, nell’ambito di un’applicazione in cui l’utente può fare l’upload di immagini per un catalogo di prodotti. In questo caso è conveniente ridurre la dimensione delle immagini, in modo tale da diminuire il tempo per caricare la pagina del catalogo. Possiamo inoltre voler convertire il formato, passando ad esempio da una jpg ad una png o gif e viceversa. Vediamo come costruire in PHP una funzione che realizza queste funzionalità.
Leggi tutto »
Supponiamo di avere un’applicazione multithread e mettiamoci un secondo nel thread padre. Se questo delega un compito ad un thread figlio per concentrarsi su altro, ad un certo punto potrebbe avere bisogno dei risultati del thread figlio per poter continuare. Posso invocare sul thread il metodo join, che attende la terminazione del thread sul quale è stato invocato. Leggi tutto »
Nel precedente articolo sul multithreading abbiamo visto come è possibile creare applicazioni che eseguono operazioni in parallelo attraverso i thread. Facciamo ora un passo in avanti e cerchiamo di risolvere il problema della loro terminazione. Supponiamo di avere un’applicazione che, per calcolare un certo risultato, prova due strategie diverse, delegandole a due thread. Immaginiamo ora che il primo thread (associato alla strategia di calcolo 1) riesca a portare a termine il suo compito prima del secondo thread. E’ opportuno a questo punto interrompere l’esecuzione del secondo thread, perchè è diventata inutile.
Leggi tutto »
Recent Comments