Widget JavaScript: se ne può fare a meno?

Giovedì 3 Novembre 2011 - 09:29

di Gabriele Romanato

Scripting

Bottoni dei social network, widget per le statistiche, contatori, tracciatori e chi ne ha più ne metta. Oggi sembra che nessun sito possa farne a meno. Il problema insito in questo trend sta nel fatto che gli sviluppatori (ci sono passato anch’io) copiano ed incollano codice di terze parti senza spesso rendersi conto di ciò che si sta realmente facendo.

Parliamo di performance. Sia che si includa un widget nella sezione head o body di una pagina, un browser deve eseguire un lookup della risorsa specificata. Se il sito di terze parti non risponde, il browser rimane in attesa. E tutto il resto della vostra pagina viene rallentato. Questo fino a quando il browser non chiude la richiesta con un timeout.

Il risultato è quello di avere un rendering a scatti. Spesso vediamo siti in cui le varie parti finiscono di essere rappresentate a salti, con intervalli apparentemente casuali. È un effetto che per un utente può risultare molto fastidioso.

La soluzione c’è, e consiste nel sostituire i widget con i loro iframe corrispondenti. Molti servizi, come Facebook e Twitter, offrono questa possibilità. Questo tipo di elemento non viene elaborato come uno script, perché tutto quello che fa è caricare contenuto HTML. I browser infatti rappresentano nel DOM il contenuto di un iframe come un nuovo documento HTML.

Se l’iframe non è disponibile, i browser visualizzeranno un errore HTTP nel luogo in cui è posizionato l’iframe. Ma questo avviene in tempi molto più rapidi di quanto non avvenga con uno script, e soprattutto si tratta di messaggi che non richiedono l’interpretazione della console JavaScript.

Ricordiamoci che l’elaborazione HTML è notevolmente più veloce di quella di uno script. Il problema maggiore di questa soluzione sta unicamente nel tipo di sito che andremo a sviluppare. Se si tratta di un sito istituzionale che deve superare i requisiti della legge Stanca sull’accessibilità, non si possono usare gli iframe con alcune DTD, come per esempio XHTML 1.0 Strict.

In questo caso siamo per forza di cose costretti ad usare soluzioni alternative. Una soluzione che mi permetto di consigliare è quella di intercettare tramite header HTTP il validatore del W3C, il cui user-agent è il seguente e fornirgli una versione del documento priva di iframe. I requisiti infatti dicono che il documento deve essere valido, e a noi interessa quindi solo il validatore del W3C.

In tutti gli altri casi, ossia nel 95% dei siti web, possiamo usare questa soluzione alternativa ai widget JavaScript, fermo restando il fatto che abbiamo effettivamente riscontrato dei benefici nell’uso degli iframe. Se infatti il vostro sito ha poco traffico e non notate problemi significativi, potete continuare a usare gli script.

Quello che ho proposto in questa sede vale come extrema ratio da un punto di vista dello sviluppo lato client. Infatti da un punto di vista lato server potete sempre verificare che l’URL degli script che caricate sia effettivamente vivo e funzionante e quindi agire di conseguenza.

Tags:

Categoria: Scripting | Permalink

Commenti

1

In effetti sull’ultimo tema WP mi accorgo che l’uso di troppi widget, peraltro su un serverino poco poco intasato, manda giù le prestazioni. L’effetto a scatti lo sto sperimentando e non è fastidioso: DE PIUUU’!

Non ho capito “intercettare il validatore W3C e passargli il documento senza iframe”: ma è regolare? Cioè il significato sarebbe: io ho sviluppato questo sito, poi per le aggiunte non sono responsabile del non allineamento agli standard. Funziona con i clienti istituzionali?

# - postato da Kiko - 03 Novembre 2011 - 12:23

2

In realtà mi sono espresso male: si potrebbe pensare ad un alternativa solo link per l’accessibilità. Ossia usare dei link per fare aprire la pagina corrispondente del widget.

La normativa italiana vigente è un caso a sè che non ha niente a che vedere con le normative internazionali. La legge dice che per esempio si possono usare DTD di tipo Strict, ma, come al solito da noi in Italialand, la Transitional è accettata purchè si preveda il passaggio alla Strict. Ossia: niente HTML5 perchè non è ancora riconosciuto come specifica ufficiale.

Ma se te usi HTML5 senza i nuovi tag, non c’è nessuna differenza con HTML 4 o XHTML. Quindi? Il solito pastrocchio italico.

Una DTD, sia chiaro, non ha di per sè nessun potenziale dannoso per l’accessibilità: dipende da come la si usa.

Dimentichiamoci della mia citazione sull’accessibilità, almeno fino a quando non ci si dedicherà seriamente a riscrivere le normative. :-)

# - postato da Gabriele Romanato - 03 Novembre 2011 - 12:40

3

@Gabriele non sei leale però, c’eri anche tu quando si parlava con Roberto Spanu nei forum di Diodati sulle tematiche relative alla legge Stanca (4/2004) o sbaglio?
Il problema semmai è che nemmeno il CNIPA esiste più, l’ente che doveva tutelare che la legge venisse rispettata e in ultima analisi prendere in considerazione le modifiche da passare alla Camera.
In realtà se ti ricordi dopo il 2004 si aspettarono per anni le leggi attuative del provvedimento.
Oggi il CNIPA è diventato digitPA con competenze aumentate.
Comunque sia c’è una bozza di modifica dell’allegato A del Decreto Ministeriale 8/2005 sull’accessibilità pronta sul sito Accessibile.it che in parte amplia ciò che faceva prima il CNIPA in merito al controllo dei siti.
Su quella bozza di legge si stabiliscono i requisiti minimi per l’accessibilità e come si devono intendere i 12 punti dele WCAG 2.0 la bozza è del 2010, che dire il Governo pensa ad altro? No non lo dico per polemica è vero ;-)
Sulla questione dei widget sai già come la penso, che siamo tornati a quando si facevano i siti con gli orologini che seguivano il puntatore de mouse e le nuvolette che facevano cadere pioggia e neve.
Troppi, inutili e pesanti, basterebbe il buon senso nel loro uso.

M.

# - postato da Marco Grazia - 03 Novembre 2011 - 21:38

4

@Marco, hai ragione, ma all’epoca io non avevo modo di conoscere cosa accadeva in altri paesi sull’accessibilità. negli ultimi anni ho spiegato le nostre norme di accessibilità a molti sviluppatori americani, e ogni volta loro mi dicevano: “ma questo non c’è nelle WCAG.” l’ultimo, un inglese, mi ha detto che abbiamo delle strane norme dalle nostre parti. :-)

# - postato da Gabriele Romanato - 04 Novembre 2011 - 09:20

Inserisci il tuo commento:





(puoi usare i seguenti tag HTML per formattare il testo -
a href, b, i, br/, p, strong, em, ul, ol, li, blockquote, pre):

 

Anteprima del commento