Perchè odiare IE

Tutti sanno quanto è odioso il browser (??) di Microsoft… non rispetta gli standard ne per l’html ne per il javascript il che rende la programmazione web multi-browser veramente problematica…. ma c’è di più…

Pochi sanno che il nostro amico IE ha introdotto limitazioni sul numero dei CSS caricabili per ogni pagina… in particolare questo numero è 32… ciò significa che se io ho 33 css l’ultimo è (SEMPLICEMENTE!!!!) ignorato…

Ora Jmaki (il framework per la programmazione web di sun) prevede un CSS per ogni componente, che in media, su grandi applicazioni, saranno piu di 32… soluzione??? usare il framework solo per la parte script e html e ridurre il numero dei CSS il più possibile….perdendo comunque, in parte, il vantaggio dell’ordine offerto da jmaki….

Ancora una volta non ci resta che ringraziare Internet Explorer!!!

Impossibile salvare documenti Internet Explorer da un sito Web SSL o con Basic Auth

Nel corso dello sviluppo di una demo per un cliente siamo incappati in un errore stranissimo, quando si tentava di scaricare il file certificate.p12 appariva una finestra con l’errore “Impossibile aprire il sito Internet. Sito non disponibile o non trovato. Riprovare.” la cosa si verificava solo con l’uso di Internet Explorer (6 o 7)… naturalmente la webapp funzionava correttamente con Firefox, Safari, Opera ed anche col nuovissimo Chrome (maledetta Microsoft!!!!)

abbiamo iniziato una ricerca con google e siamo giunti alla pagina http://support.microsoft.com/kb/316431/it e http://support.microsoft.com/kb/222064 dove si parlava di un problema analogo ma non uguale, qui gli incriminati erano 2 header della response:

Pragma: no-cache
Cache-control: no-cache,max-age=0,must-revalidate

Il problema è che nel codice non erano impostati nè l’uno nè l’altro? abbiamo controllato però il pacchetto in response con tcpdump è gli header effettivamente erano presenti…. non restava che capire chi inseriva questi header… siamo giunti alla pagina http://wiki.jboss.org/wiki/DownloadSSLAndIE6 dove si capisce che è l’application server ad aggiungere tali tag, delle due soluzioni abbiamo adottato la piu semplice cioè quella di aggiungere nel codice

response.setHeader("Cache-Control", "cache, must-revalidate");
response.setHeader("Pragma", "public");

in questo modo l’application server (JBoss e Tomcat hanno lo stesso comportamento) non sovrascrive gli header ed è possibile scaricare il file anche da IE…. 😉