Copertina
Autore Christophe Porteneuve
Titolo Sviluppare applicazioni Web 2.0
EdizioneApogeo, Milano, 2007, Guida completa , pag. 484, ill., cop.fle., dim. 16,8x24x2,7 cm , Isbn 978-88-503-2659-4
OriginaleBien développer pour le Web 2.0
EdizioneEyrolles, Paris, 2006
TraduttorePaolo Poli
LettoreCorrado Leonardo, 2007
Classe informatica: reti , informatica: linguaggi
PrimaPagina


al sito dell'editore


per l'acquisto su IBS.IT

per l'acquisto su BOL.IT

per l'acquisto su AMAZON.IT

 

| << |  <  |  >  | >> |

Indice


Prefazione                                                  xix


Introduzione                                              xxiii

A chi è rivolto questo libro?                             xxiii
Che cosa troverete in questo libro                        xxiii
Gli standard web                                           xxiv
    Di quali tecnologie stiamo parlando?                    xxv
    Chi è al timone e dove stiamo andando?                 xxvi
    A che cosa servono gli standard?                     xxviii
    Che cosa ne pensano gli sviluppatori di browser?        xxx
    Qualche parola sulle ultime versioni                   xxxi
Che cos'è il Web 2.0?                                     xxxii
Panoramica: capitolo per capitolo                         xxxiv
    Parte I - Dare vita alle pagine                       xxxiv
    Parte II - AJAX o l'arte del sussurro                 xxxiv
    Parte III - Interagire con il resto del mondo          xxxv
    Appendici per i principianti e gli esperti             xxxv
    Approfondimenti                                        xxxv
    Gli esempi di codice                                  xxxvi
Ringraziamenti                                            xxxvi

Capitolo 1
Come e perché accettare la sfida del Web 2.0                  1

Prima e dopo: alcune situazioni sorprendenti                  1
    Digitazione assistita: completamento automatico del testo 1
    Caricamento al volo                                       4
    La conferma automatica                                   10
Imparare a utilizzare gli strumenti chiave:
    XHTML, CSS, JS, DOM e AJAX                               11
Per iniziare: AJAX, di che cosa si tratta?                   12
Piano d'azione per due obiettivi: metodo ed esperienza       14


Parte I    Dare vita alle pagine                             17

In questa parte                                              17

Capitolo 2
Non scambiate JavaScript per quello che non è                19

Miti e leggende su JavaScript                                19
    JavaScript è una versione "light" di Java                20
    JavaScript non si basa su alcuno standard                20
    JavaScript è lento                                       21
    JavaScript è un linguaggio-giocattolo, poco potente      21
Che cosa sono JavaScript, EcmaScript, JScript e ActiveScript 21
Tutto ciò che non sospettate:
    i piccoli dettagli del linguaggio                        22
    Le variabili: dichiarate o non dichiarate?               22
    Tipi di dati                                             24
    Funzioni e valori disponibili ovunque                    25
    I misteri di parseFloat e parseInt                       25
        Indicate sempre la base, se no...                    25
        Una conversione poco convinta                        27
    Riepilogo sulle strutture di controllo                   29
        I grandi classici                                    29
        Etichette nei cicli                                  29
        Il ciclo for... in                                   30
        Semplificare l'accesso ripetitivo a un oggetto
            con with                                         31
Operatori misconosciuti                                      32
    Ripasso rapido sui grandi classici                       32
    Operatori esotici                                        32
    Comportamenti particolari                                33
Implementazione delle eccezioni                              33
    I tipi di eccezioni predefiniti                          33
Catturare un'eccezione: try/catch                            34
    Estensione: catch multipli e condizionali                35
    Garantire una gestione delle eccezioni: finally          36
    Lanciare la propria esecuzione                           37
Migliorare gli oggetti esistenti                             37
    Un po' di teoria sui linguaggi a prototipi               38
    In pratica                                               38
    Estendere le stringhe                                    39
    Gli array e le iniezioni                                 39
Gli argomenti delle funzioni                                 40
Binding fra funzioni: che cosa significa "this"?             43
Costrutti interessanti                                       46
    Inizializzazione e valori predefiniti con ||             47
    Selezionare una proprietà
        (e pertanto un metodo) condizionale                  47
    Verificare l'assenza di una proprietà in un oggetto      48
    Funzioni anonime: mai usare new Function!                48
    Oggetti anonimi come hash di opzioni                     49
    Simulare gli spazi dei nomi                              50
"JavaScript non intrusivo": associare correttamente
    il codice JavaScript e la pagina web                     50
Trucchi per la scrittura del codice                          51
    Evitare le trappole più comuni                           51
    Migliorare la leggibilità                                53
Tecniche di debugging JavaScript                             55
    La console JavaScript                                    55
        Mozilla Firefox                                      56
        Opera                                                57
        Safari                                               57
        Konqueror                                            58
        Internet Explorer                                    59
    Venkman, il debugger di JavaScript                       59
    Firebug, il coltellino svizzero degli sviluppatori
        web 2.0                                              64
Approfondimenti                                              67
    Libri                                                    67
    Siti                                                     68

Capitolo 3
Manipolare dinamicamente la pagina con il DOM                69

[...]

Capitolo 4
Prototype: semplice, comodo, elegante e portatile!          117

[...]

Parte II   AJAX o l'arte del sussurro                       169

In questa parte                                             169

Capitolo 5
I meccanismi interni: l'oggetto XMLHttpRequest              171

[...]

Capitolo 6
AJAX: in tutta scioltezza con Prototype                     221

[...]

Capitolo 7
Un'ergonomia da sogno con script.aculo.us                   233

[...]

Parte III   Interagire con il resto del mondo               297

In questa parte                                             297

Capitolo 8
Web servite e REST: non siamo più soli                      299

[...]

Capitolo 9
Informazioni "à la carte": i feed di dati RSS e Atom        371

[...]

Parte IV   Appendici                                        401


Appendice A
Gestire correttamente i contenuti: XHTML semantico          403

[...]

Appendice B
Un look impeccabile e flessibile: CSS 2.1                   429

[...]

Appendice C
I "must" dell'esperto: saper leggere le specifiche          449

[...]

Appendice D
Sviluppare con il browser                                   471

[...]

Indice analitico                                            477


 

 

| << |  <  |  >  | >> |

Pagina xxiii

Introduzione


Prima di entrare nel vivo, facciamo il punto sugli argomenti trattati in questo libro, su ciò che contiene e su ciò che abbiamo scelto di omettere oltre che sulla sua struttura generale. Vedremo in particolare come si articolano i vari temi.


A chi è rivolto questo libro?

Tutti coloro che sono interessati direttamente o indirettamente alle tecnologie web troveranno elementi di interesse in quest'opera. Precisiamo che è preferibile una certa conoscenza delle tecnologie relative ai contenuti web statici: in particolare, HTML (meglio, XHTML) e CSS.

Queste conoscenze vengono qui attualizzate e sono pertanto conformi agli standard (XHTML Strict, CSS 2.1) e ben approfondite, in particolare per quanto riguarda l'uso semantico dei tag. I lettori che ritengono di avere lacune in queste tecnologie potranno trovare nelle Appendici A e B una breve introduzione ai principi fondamentali ma anche numerose risorse (cartacee e online) per affinare le proprie conoscenze.

Per il resto non è necessario avere competenze specifiche in JavaScript o DOM, in quanto questi argomenti verranno approfonditi all'interno dell'opera. Insomma questo libro può essere utile sia per i professionisti esperti, desiderosi di aggiornarsi, sia per gli studenti che vogliono andare al di là delle nozioni apprese nei corsi di tecnologie web, spesso troppo sommari ed empirici, per non dire obsoleti.


Che cosa troverete in questo libro

Il libro è suddiviso in tre parti, precedute da questa introduzione e da un capitolo introduttivo che presenta il Web 2.0 e le sue tecnologie.

Per il resto, l'opera è sviluppata su due piani: un piano tematico e un piano metodologico e qualitativo. Il primo delinea gli obiettivi del volume, mentre il secondo è trasversale.

La prima parte presenta in dettaglio le tecnologie che "danno vita" a una pagina web, spesso poco e mal conosciute: JavaScript, il DOM e, per ottenere una maggiore agilità e potenza, l'eccellente libreria Prototype.

La seconda parte esplora le potenzialità dello sviluppo AJAX, a partire dall'oggetto XMLHttpRequest, il motore delle richieste asincrone, per proseguire con i framework più affermati nell'universo Web 2.0, in particolare Prototype e script.aculo.us.

La terza parte si spinge oltre, aprendo le pagine ai contenuti e ai servizi esterni, tramite i web service, le API REST, i feed di dati e i formati RSS e Atom.

L'opera si conclude con quattro Appendici.

Le Appendici A e B forniscono le basi delle due principali tecnologie relative ai contenuti: XHTML e CSS, nelle loro versioni più recenti.

L'Appendice C, rappresenta un "must" irrinunciabile in quanto descrive chiaramente come sfruttare al meglio i documenti di riferimento per il Web (RFC, DTD, raccomandazioni W3C e così via), offrendovi la possibilità di accedere a conoscenze aggiornate e autorevoli.

Infine l'Appendice D, pur essendo collocata alla fine del libro, dovrebbe essere letta prima dei capitoli in quanto fornisce le chiavi per sviluppare in modo più produttivo con il browser, evitando, per esempio, di lottare contro la cache mentre provate gli esempi di questo libro.

In tutti questi capitoli, l'obiettivo costante è stato quello della massima qualità, sia in termini di tecnica sia in termini di metodologia di lavoro. Che si tratti di codice JavaScript non intrusivo (concetto che affronteremo in dettaglio nel Capitolo 2), di uso semantico dei tag, di CSS efficaci, di accessibilità o di scelta corretta del formato per un flusso di syndication o del risultato di una richiesta AJAX, abbiamo cercato di realizzare un'opera di alto livello, differenziata, tale da offrire al lettore un reale vantaggio competitivo, in un momento in cui nessuno esita a scrivere nel proprio curriculum "Esperto sviluppatore web".


Gli standard web

Tutti accolgono favorevolmente gli standard web e affermano che è importante rispettarli. Ma pochi sanno veramente che cosa sono, perché è opportuno adottarli nel proprio lavoro e dove rivolgersi per una voce autorevole.

Oggi che la maggior parte degli sviluppatori web più esperti e dei giovani diplomati credono di "conoscere lo sviluppo web", ma non sanno che cos'è il W3C, non sanno parlare dell'ultima versione di HTML, sono vaghi sulle differenze fra XHTML e HTML e pensano che CSS si limiti a inserire dei tag div e degli attributi class e style qua e là, possiamo misurare il cammino da percorrere in termini di evangelizzazione e di educazione in generale.


Di quali tecnologie stiamo parlando?

Iniziamo ricordando le tecnologie che rappresentano oggi gli standard web. Ci limiteremo alle tecnologie legate in particolare all'argomento del libro, per evitare di dover dedicare all'argomento troppe pagine.

HTML (HyperText Markup Language) è il linguaggio per la descrizione dei contenuti all'interno di una pagina web. Derivato da SGML, la sua sintassi è un po' troppo permissiva e ricca di ambiguità per permettere un'elaborazione automatizzata veramente efficace.

XML (eXtensible Markup Language) offre una sintassi più formale dei tag per i contenuti e ciò garantisce l'elaborazione automatica del documento senza rischiare ambiguità, problemi sui set di caratteri o limiti di tipo e dimensioni dei contenuti.

XHTML consiste sostanzialmente nell'applicare ad HTML tutti i vincoli sintattici di XML, aprendo così la porta a un'elaborazione affidabile dei contenuti delle pagine web.

CSS (Cascading Style Sheets) è una tecnologia di presentazione che permette un'impaginazione estremamente avanzata dei contenuti compatibili XML (ma anche HTML grazie alla sua flessibilità). Le possibilità di questi fogli stile sono enormi, ben al di là di ciò che consentono i tag di presentazione di HTML.

DOM (Document Object Model) descrive una serie di strumenti destinati ai programmatori (si parla più precisamente di interfacce) che permettono di rappresentare e manipolare in memoria un documento compatibile XML. Queste manipolazioni sono praticamente illimitate e costituiscono uno dei pilastri di una pagina web veramente "viva". Fra le sottoparti del DOM si citerà in particolare Core che fornisce le basi comuni a tutti i tipi di documenti; HTML è specializzata nelle pagine web; infine Events governa l'elaborazione degli eventi associati agli elementi del documento.

JavaScript è un linguaggio per script, dinamico, orientato agli oggetti che dispone di numerose funzionalità avanzate, oggi disponibile sotto una forma o l'altra in tutti i browser, anche se poco conosciuti. Senza JavaScript, niente pagine vive, niente Web 2.0 e niente AJAX!

XMLHttpRequest è un oggetto in grado di inviare richieste asincrone tramite HTTP (ecco una frase che forse non vi dice nulla; nessun problema, l'argomento verrà trattato nel Capitolo 5). Utilizzato in JavaScript, rappresenta il cuore di AJAX.

RSS 1.0 (RDF Site Summary) è un formato per flussi di syndication, definito in modo molto più formale rispetto ai suoi omonimi nelle versioni 0.9x o 2.0 (dove l'abbreviazione significa Really Simple Syndication), i quali sono più diffusi ma meno potenti. Si basa su RDF (Resource Description Framework), una grammatica formale di rappresentazione della conoscenza attorno alla quale gravita l'universo del Web semantico (per ulteriori informazioni sull'argomento, consultate la pagina http://www.w3.org/2001/sw/ ).

Atom è il formato più recente per feed di syndication, senza dubbio il più potente e il più efficace, senza però essere troppo complesso.

Fra gli standard web si trovano ancora numerose tecnologie molto utilizzate, come PNG (per le immagini), SOAP e i web service, XSL e XSLT e altre ancora troppo poco utilizzate, per esempio SVG (per le immagini vettoriali), MathML (per le formule matematiche), SMIL (per i formati multimediali), XForms (per i moduli web) e così via.

| << |  <  |  >  | >> |

Pagina xxxii

Che cos'è il Web 2.0?

Il termine "Web 2.0", tanto amato dalla stampa e dai siti specializzati, descrive in realtà due fenomeni distinti.

Da una parte si ha un'evoluzione profonda delle interfacce utente proposte nel Web, simili per comportamento e interattività alle applicazioni più classiche (applicazione desktop, normalmente in esecuzione locale sulla macchina dell'utente) e fruibili anche su periferiche "leggere" (SmartPhone, computer palmari e così via).

Trascinamenti, completamenti automatici, creazione dinamica delle immagini, personalizzazione al volo dell'interfaccia, esecuzione in parallelo: tutti comportamenti che siamo ormai abituati a trovare nelle applicazioni e che purtroppo mancavano (almeno fino a poco tempo fa) nei browser. I browser sono stati finora ridotti a ruoli subalterni, offrendo un sottoinsieme ridicolo di funzionalità ormai ben definite. Ma i browser non sono affatto programmi meno evoluti rispetto agli altri; semplicemente finora li abbiamo impiegati poco e male.

L'altra faccia del Web 2.0 è quella che potremmo chiamare "il Web nelle mani degli utenti".

Fino poco tempo fa, consultare una pagina web garantiva un'esperienza simile alla lettura di una pagina stampata in una rivista: non era possibile intervenire troppo sull'aspetto. Quella barra di navigazione sulla destra riduce l'area utile? Quella barra pubblicitaria vi innervosisce? Il testo è troppo piccolo o il contrasto troppo scarso? Tanto peggio per voi!

Il progettista del sito ha voluto la pagina in questo modo e... "sia fatta la sua volontà". Infatti, consultare una pagina web era in realtà un'esperienza peggiore della lettura di una rivista: su quest'ultima, almeno, si ha il vantaggio dell'eccellente risoluzione di stampa, del fatto che i testi di piccole dimensioni sono comunque ben leggibili. Certamente, molti browser permettono di disattivare CSS o di utilizzare un foglio stile personale o ancora di eseguire uno zoom per ingrandire tutti gli elementi della pagina (immagini comprese) ma era solo una magra consolazione.

Ecco dunque che compaiono nuovi utilizzi, che danno finalmente all'utente il controllo sull'aspetto finale della pagina sul proprio browser. Basta con le parti superflue e irritanti! Ingrandiamo il testo principale, scritto con caratteri troppo piccoli! E già ché ci siamo, aumentiamo il margine fra i paragrafi e diamo più "aria" al testo cambiando l'interlinea! Grazie a strumenti dedicati, come le estensioni GreaseMonkey (http://www.greasespot.net/) e Platypus (http://platypus.mozdev.org) per Firefox, l'utente può regolare come desidera l'aspetto di una pagina e rendere queste modifiche automatiche in previsione delle successive visite.

Per il resto, gli utenti possono ora contribuire a migliorare la qualità del Web, grazie alla facilità di pubblicazione che offrono strumenti come i blog e tramite raccolte di pagine molto dinamiche basate su voti di popolarità (per esempio Digg). Il principio è semplice: questi siti permettono a chiunque di "votare" una qualsiasi pagina web. Quindi conservano un elenco, ordinato per popolarità, delle pagine segnalate in questo modo.

Se un numero massiccio di utenti vota per una determinata pagina, questa comparirà in un'eccellente posizione nel sito che ha raccolto i voti. Il risultato è seducente: i siti che compaiono in prima posizione nell'elenco offrono contenuti interessanti, divertenti o comunque apprezzati e votati da molti. Statisticamente avranno pertanto maggiori probabilità di interessare anche voi.

Sotto un'ottica più politica, questo significa che i "grandi titoli" non sono più confinati in una redazione, così facile da strumentalizzare. Per acquisire questa visibilità, seppure effimera, la pagina non ha altra scelta se non quella di piacere al maggior numero possibile di persone. un sistema molto democratico.

I principali siti di questo tipo, del.icio.us (http://del.icio.us/) e Digg (http: //www.digg.com, più orientato alle tecnologie) per citarne solo due, sono già estremamente visitati (più di decine di milioni di visitatori al giorno). Improvvisamente, molti blog, varie riviste online e anche altri siti dotati di contenuti dinamici hanno sistematicamente iniziato a presentare sulle proprie pagine dei link grafici facilmente riconoscibili per facilitare (e dunque incoraggiare) il voto degli utenti.

I siti Technorati e del.icio.us sono fra i pionieri di un nuovo utilizzo che si diffonde rapidamente: il tagging. Si tratta di permettere agli utenti di qualificare una pagina in base a parole chiave, per ottenere un sistema ricco di riferimenti incrociati e di categorie, ben più flessibile delle gerarchie di categorie abituali. Alcuni strumenti per blog, come Typo (http://trac.typosphere.org/) o Dotclear 2 (http://www.dotclear.net) , propongono già l'assegnazione di tag (etichette) agli articoli.

Il Web 2.0, esattamente come Firefox alla sua nascita, vi invita finalmente a riappropriarvi del Web.

| << |  <  |  >  | >> |

Pagina xxxiv

Panoramica: capitolo per capitolo

Per concludere questa lunga introduzione, vi propongo un'occhiata generale alla struttura dell'opera, sottolineando la sua articolazione e il ruolo di ciascun capitolo.

Il Capitolo 1, Come e perché accettare la sfida del Web 2.0, definisce la problematica e la posta in gioco. Si tratta di imparare a distinguere fra i siti classici e quelli Web 2.0; dopo aver presentato vari esempi illustrati e dopo aver collocato le principali tecnologie nell'architettura globale dello sviluppo, il capitolo svela il significato di AJAX e si conclude delineando un piano d'azione che ha lo scopo di aiutarvi a trarre i maggiori benefici da questa lettura.


Parte I - Dare vita alle pagine

I tre capitoli di questa parte hanno lo scopo di definire i pilastri ormai classici sui quali si regge oggi AJAX. A meno che non siate grandi esperti di JavaScript e del DOM, perfettamente rispettosi degli standard che li governano, evitate di saltare questi capitoli, supponendo di conoscere già l'argomento trattato. Con ogni probabilità questi capitoli risulteranno utili per apprendere qualche nuovo argomento.

Il Capitolo 2, Non scambiate JavaScript per quello che non è, presenta in dettaglio questo linguaggio mal conosciuto, maltrattato e spesso mal impiegato. Questo capitolo, molto ricco di consigli e trucchi metodologici, vi aiuta a realizzare i "comportamenti" nel modo più corretto ed elegante. Viene dedicata particolare attenzione al debugging.

Il Capitolo 3, Manipolare dinamicamente la pagina con il DOM, apre la strada verso la realizzazione di pagine veramente dinamiche, il cui contenuto evolve rapidamente, interamente sul lato client. Vengono realizzati numerosi esempi che rispondono a esigenze concrete. Vengono inoltre forniti consigli preziosi facendo il punto sui residui problemi di compatibilità.

Il Capitolo 4, Prototype: semplice, comodo, elegante e portatile!, presenta la quasi totalità di Prototype, senza dubbio la più utile delle librerie JavaScript. Grazie ad essa possiamo realizzare codice JavaScript che, nonostante sia più portatile rispetto ai nostri precedenti tentativi, sarà anche più elegante, più conciso, più espressivo e in generale molto più comodo da scrivere.


Parte II - AJAX o l'arte del sussurro

Una volta stabilite in modo solido e confortevole le basi tecniche, potete dedicarvi a quella che, secondo molti, rappresenta la parte visibile di AJAX: le richieste asincrone in background. E grazie a queste che le pagine sembrano in grado di fare "più cose contemporaneamente" e pertanto non hanno più bisogno di ricaricarsi integralmente.

Il Capitolo 5, I meccanismi interni: l'oggetto XMLHttpRequest, approfondisce la tecnologia responsabile delle richieste asincrone. l'occasione di scoprire un'altra tecnologia di punta, anch'essa molto confortevole: il linguaggio Ruby che utilizzeremo per creare, con una sconcertante facilità, un server web per contenuti dinamici per i nostri test.

Il Capitolo 6, AJAX in tutta scioltezza con Prototype, ci consente di cambiare marcia. Poiché ormai conosciamo gli ingranaggi, possiamo sfruttare gli strumenti disponibili per fare un balzo spettacolare in termini di produttività, grazie alle funzionalità AJAX di Prototype (ancora lui).

Il Capitolo 7, Un'ergonomia da sogno con script.aculo.us, esplora l'incredibile libreria di effetti visuali e di comportamenti avanzati rappresentata da script.aculo.us. Questo capitolo vi aiuterà ad approfondire ulteriormente il discorso sugli utilizzi pertinenti e scorretti di AJAX, spingendovi fino ai limiti del suo utilizzo.


Parte III - Interagire con il resto del mondo

un po' una parte aggiuntiva che va al di là della tecnologia AJAX per esplorarne alcuni utilizzi concreti sempre più frequenti. L'idea è che le nostre pagine non hanno alcun motivo di limitarsi al nostro server e possono discutere con la stessa facilità con qualsiasi sito e qualsiasi servizio.

Il Capitolo 8, Web servite e REST: non siamo più soli, illustra questa idea presentando queste due tecnologie per sfruttare nelle nostre pagine le funzionalità di ricerca di Amazon, le previsioni meteorologiche di The Weather Channel e le librerie di immagini di Flickr.

Il Capitolo 9, Informazioni "à la carte": i feed di dati RSS e Atom, presenta i due principali formati di feed per attivare una visualizzazione di contenuti (blog e di altro tipo) direttamente sulle nostre pagine.


Appendici per i principianti e gli esperti

Delle quattro appendici previste, due hanno lo scopo di venire incontro alle esigenze dei lettori ai quali mancano alcune basi, mentre le ultime due forniscono competenze utili per tutti.

L'Appendice A, Gestire correttamente i contenuti: XHTML semantico, introduce le basi di XHTML e insiste fortemente sull'importanza di un utilizzo non solo corretto ma soprattutto semantico dei tag. Dopo aver elencato brevemente i tag disponibili, fornisce alcuni casi concreti di uso impeccabile dei tag, corrispondenti ad alcuni bisogni ricorrenti.

L'Appendice B, Un look impeccabile e flessibile: CSS 2.1, svolge la stessa operazione per CSS e dunque per l'impaginazione. Prima di iniziare con i fondamentali, viene definito un vocabolario: struttura delle regole, principio di cascata e box model. Un elenco conciso dei selettori e delle proprietà permette di chiarire meglio gli esempi impiegati nel resto del libro.

L'Appendice C, I "must" dell'esperto: saper leg ere le specifiche, ha lo scopo di insegnarvi a leggere i principali formati delle specifiche per gli standard web, per navigare senza problema all'interno di questi documenti talvolta complessi, che spesso impiegano sintassi particolari. Essere a proprio agio con questi documenti offre numerosi vantaggi e rappresenta una competenza ancora troppo rara.

L'Appendice D, Sviluppare con il browser, fa infine il punto sulle possibilità più o meno ricche per migliorare la vostra produttività di sviluppatori web con i principali browser: gestione della cache, estensioni, strumenti complementari di debugging e test. Da leggere assolutamente, preferibilmente prima ancora di iniziare a leggere questo libro.


Approfondimenti

Non lo si ripeterà mai abbastanza, tutta quest'opera tenta di rispondere a esigenze costanti di qualità, eleganza, efficacia, tramite numerosi consigli metodologici e scelte tecniche saggiamente orientate. L'obiettivo che si prefigge è solo quello di migliorare la vostra preparazione!

Con lo stesso spirito, la maggior parte dei capitoli si conclude con un paragrafo di approfondimenti che elenca le opere e le risorse online di qualità che permettono di approfondire gli argomenti esplorati.


Gli esempi di codice

Il codice sorgente di tutti gli esempi presentati nei vari capitoli di questo libro è disponibile in un archivio presente sul sito web di Apogeo (raggiungibile tramite la pagina http://www.apogeonline.com/libri/88-503-2659-9/scheda ). In alcuni capitoli (per esempio nel Capitolo 4 riguardante Prototype), sono stati infatti presentati solo alcuni brevi estratti, mentre l'archivio fornisce sempre i listati completi.

Questi esempi sono stati collaudati su Firefox 1.5, Safari 2, Internet Explorer 6, Opera 9 e Konqueror 3.5.2. Quando alcuni vincoli sono inevitabili, l'impatto viene specificato nel testo del libro.

| << |  <  |