Articoli con Tag ‘browser’
Ecco la risposta alla drammatica incompatibilità con i vari browser attualmente disponibili. Browsershots.org è un servizio – gratuito per ora e open source – che fornisce un modo semplice per verificare se un sito è visualizzato allo stesso modo su varie piattaforme e vari browser.
Grazie ad una piccola server-farm casalinga, gli autori di questo utilissimo servizio mettono a disposizione gli output video delle schermate generate dal vostro Web, così da poter verificare la correttezza dell’interpretazione HTML/CSS su varie macchine e browser: Linux PLD 2.0 (Ac), Windows 2003 (Server), Windows NT 5.1 (XP), Mac OS X 10.4 (Tiger) ed altre.

Il sito è davvero ben curato, con tanto di documentazione wiki, sorgenti, roadmap e timeline. Inoltre è possibile visualizzare gli ultimi screenshots, lo stato delle code-di-processo e lo stato della factories. Unica nota dolente, ma superabile, è il tempo richiesto per la generazione degli screen-shot, un po’ lento! Tuttavia è un grosso aiuto ai Web Developer per verificare la correttezza del loro lavoro, senza dover installare browser e/o macchine virtuali per far convivere – ad esempio – Internet Explorer 6 e 7. Sono supportati praticamente tutti i browser, da FireFox a Safari. Interessante è la possibilità di verifcare IE6 e IE7, insieme alle versioni 5.01 e 5.5.
Bravi!
Continua...
Mentre Microsoft, tramite il suo Blog su IE7, annuncia gongolante la “favolosa” cifra di 100 milioni di installazioni di IE7 nei primi giorni di gennaio 2007, circolano voci su una probabile versione di Safari (il noto anche se ormai obsoleto browser – nativo – per Mac) per Windows.
Microsoft dal canto suo è felice di constatare che IE7 è il secondo browser più utilizzato, dopo IE6.
Tutto ciò accade quando mancano ancora numerose localizzazioni di IE7, ed è quindi comprensibile l’assoluta fiducia riposta da Microsoft nel suo nuovo browser, in “vista” anche dell’uscita di Vista (scusate il giochino di parole)!
È quindi davvero necessario “portare” Safari su Windows?
Mary Jo Foley, nel suo Blog, ha provato a chiederlo agli utenti. Votate anche voi.
Per ora i risultati sono:
Evidentemente, se questi “rumors” sono autentici, iPhone , l’ultima meraviglia Apple, potrebbe essere coinvolto in qualche modo.
Certamente sul nuovo iPhone di Apple è preferibile usare FireFox o Opera, sempre che Apple lo renda possibile. Su un normale Mac, stando agli end-user, Safari da tempo perde colpi, rendendo innavigabili alcuni siti.
Possiamo tuttavia intravedere in queste speculazioni quanto la presentazione del nuovo iPhone Apple abbia scosso qualcosa.
Continua...
Ormai da Microsoft ci aspettiamo davvero di tutto, soprattutto quando si parla di browser. Offendere l’intelligenza della comunità, tuttavia, risulta un po’ sgradevole da accettare.
Sul Blog di IE7 è uscito oggi un articolo (IE+JScript Performance Recommendations Part 3: JavaScript Code Inefficiencies), se così possiamo definirlo di Peter Gurevich, Performance PM for IE, con la parte III dei suoi “consigli” per gli sviluppatori.
Primo appunto: perchè Microsoft si ostina ad implementare una sua versione di Javascript – che chiama appunto JScript – complicando la vita a tutti?
Secondo appunto: proprio perchè il motore di JScript è proprietà della Microsoft, invece di perdere tempo a dire a “noi” come aggirare i difetti, perchè non li sistemano una volta per tutte?
Lasciando stare il primo consiglio di questa III parte, che potete leggere direttamente sul Blog o su Ajaxian, il secondo è davvero eclatante, e sinceramente non lo diregisco proprio.
Don’t use Property Accessor Functions
Quando si dice il progresso! In pieno 2007, un Project Manager della Microsoft viene a dire a noi sviluppatori di Non usare le funzioni di get e set in JScript!
La follia, evidentemente, è uno strano male, che colpisce in modo repentino e fuorviante. JScript – sullo stile di Javascript – è implementato seguendo un modello ad oggetti! È un linguaggio ad oggetti, sulla scia del C++. Il fatto che le variabili siano accessibili dall’esterno (come sottolineato nell’articolo – cosa ovvia tra l’altro) non è assolutamente un vanto, anzi. La tecnica dell’incapsulamento è propria della filosofia della programmazione OO. Incapsulare le proprietà, passando dai virtual-method get e set è una forza del linguaggio Object Oriented, non un limite. Consigliare di non farne uso è a dir poco criminale, e gli eventuali problemi di performance sono a carico dell’interprete e dei suoi autori, non certo dell’end-developer.
Quindi, alla fine, JScript va usato come un semplice C, guai a trattarlo come C++, pena “impallare” il browser o chissà cos’altro.
Inoltre, come segnalato sul Blog, il tutto è un falso problema in quanto JScript NON implementa le vere funzioni di get e set, solo Javascript lo fa!
Ma il problema, evidentemente, rimane. In Javascript (scusate ma JScript non riesco proprio a digerirlo) ci sono varie tecniche per creare un oggetto. Ad esempio lo si può creare in modo immediato in questo modo:
1 2 3 4 5
| var myObject = {
miaProprieta: 0,
mioMethodo: function() { alert("Hello"); }
}; |
In questo modo non ho dichiarato una classe. L’oggetto viene per così dire dichiarato e creato contemporaneamente. È un modo rapido quando l’oggetto che ci serve è unico.
Oppure, il che è equivalente ai fini pratici:
1 2 3 4 5 6 7 8
| function CmyObject() {
this.miaProprieta = 0;
this.mioMetodo = function () { alert("Hello") }
}
//
var iMyObject = new CmyObject(); |
In questo caso prima si definisce la classe – tramite una function- (CmyObject) e poi si crea esplicitamente l’oggetto con new.
A parte le questioni stilistiche relative al singolo sviluppatore, il problema di come accedere alle proprietà di una classe rimane. Consiglio vivamente a tutti gli interessati, comumque, di leggere le risposte al Blog di Microsoft, davvero interessanti.
Sul Blog erano presenti tre modi di accesso: con le funzioni get e set, diretto e passando da prototype. Alla fine la cosa simpatica è stata che sul Blog c’è un codice per eseguire un Testdrive, una prova dei tre metodi indicati sopra. Il codice è presente sul Blog ma lo riporto qui per completezza:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
| <script>
// Slow Car definition
function SlowCar()
{
this.m_tireSize = 17;
this.m_maxSpeed = 250; // One can always dream!
this.GetTireSize = SlowCar_get_tireSize;
this.SetTireSize = SlowCar_put_tireSize;
}
function SlowCar_get_tireSize()
{
return this.m_tireSize;
}
function SlowCar_put_tireSize(value)
{
this.m_tireSize = value;
}
</script>
<script>
// Faster Car, no more property accessors
function FasterCar()
{
this.m_tireSize = 17;
this.m_maxSpeed = 250; // One can always dream!
}
</script>
<script>
// Prototype Car, use the language features!
function PrototypeCar()
{
this.m_tireSize = 17;
this.m_maxSpeed = 250; // One can always dream!
}
PrototypeCar.prototype.GetTireSize = function() { return this.m_tireSize; };
PrototypeCar.prototype.SetTireSize = function(value) { this.m_tireSize = value; };
</script>
<script>
function TestDrive()
{
var slowCar = new SlowCar(); // Safe and reliable, probably not fast
var fasterCar = new FasterCar(); // Lacks air-bags, probably faster
var protoCar = new PrototypeCar(); // Can technology win the day?
var start = (new Date()).getTime();
for(var i = 0; i < 100000; i++) { slowCar.SetTireSize(slowCar.GetTireSize() + 1); }
var end = (new Date()).getTime();
output.innerHTML += "Slow Car " + (end - start) + "<br>";
start = (new Date()).getTime();
for(var i = 0; i < 100000; i++) { fasterCar.m_tireSize += 1; }
end = (new Date()).getTime();
output.innerHTML += "Faster Car " + (end - start) + "<br>";
start = (new Date()).getTime();
for(var i = 0; i < 100000; i++) { protoCar.SetTireSize(protoCar.GetTireSize() + 1); }
end = (new Date()).getTime();
output.innerHTML += "Prototype Car " + (end - start) + "<br>";
}
</script>
<button onclick="TestDrive();">Test Drive Cars!</button>
<div id="output"></div> |
Ora, questo è l’output (relativo alla mia macchina) con IE7:
Slow Car 515
Faster Car 63
Prototype Car 547
Con FireFox (v.2.0.0.1):
Slow Car 156
Faster Car 47
Prototype Car 172
Con Opera (v.9.10):
Slow Car 172
Faster Car 47
Prototype Car 172
Insomma
IE7 ne esce davvero male… non so se notate l’enorme differenza. Quindi direi che JScript potrebbe essere abolito, eliminato, cancellato, vaporizzato. Speriamo che Microsoft si decida anche lei ad adottare Javscript e non i surrogati.
Continua...
È giunto il momento di prendere una decisione. L’anno 2007 è ormai avviato ed è quindi inutile indulgiare ulteriormente. Microsoft Vista è alle porte, e il 2008 sarà il suo anno. Windows XP sta per lasciare il posto all’ultimo nato in casa Gates, ultimo – tra l’altro – del suo genere.
Quindi risulta ovvio – se qualcuno non se ne fosse ancora accorto – una certa urgenza nell’aggiornare lo strumento più utilizzato del secolo (se non del millennio), ovvero il browser.
Rilasciato da poco come aggiornamento automatico – ma facoltativo per motivi di monopolio e antitrust – Microsoft Intrenet Explorer 7 diventa per i possessori di Windows una scelta obbligata. L’aggiornamento è vivamente consigliato soprattutto per motivi di sucurezza e accessibilità sul Web. La scoperta di falle nei codici non è cosa nuova, ma le ultimi versioni sono notoriamente meno attaccabili in quanto gli hackers non hanno avuto il tempo di scoprire i buchi da cui insinuare hacks e worm.
Ecco quindi 5 buoni motivi, secondo me, per passare da subito a Internet Explorer 7 (IE7):
- È il browser delle prossime generazioni, quindi meglio prendere subito dimestichezza con le sue nuove funzionalità
- Migliore stabilità e sicurezza
- Migliore assistenza sugli aggiornamenti e supporto dei componenti aggiuntivi
- Migliore navigabilità sul Web, dove la tecnologia utilizzata in IE7 si avvicina meglio a quella già presente in altri noti browser come FireFox, Opera, ecc… così – finalmente – riuscirete a vedere correttamente alcuni siti Web, navigabili oggi solo con FireFox
Perchè rimanere indietro?
Continua...
Anche se non si realizza un sito interamente in Flash, alcuni componenti possono presentarsi comunque all’interno della pagina, come banner, claim, visori RSS, ecc… Eco quindi un modo semplice per verificare se Flash è attivo e installato. Proponiamo qui un metodo che non necessità di più pagine, come proposto dalla stessa Adobe. Faremo in modo di risolvere tutto all’interno di un’unica pagina.
La classe qui presentata permette anche di risolvere l’ultimo problema nato con Explorer, ovvero quello dell’attivazione di un controllo ActiveX. Per risolverlo basta utilizzare Javascript per inserire il componente Flash, proprio quello che fa la nostra classe.
La prima cosa di cui abbiamo bisogno è una simpatica classe Javascript che ci permetterà di eseguire tutti i controlli necessari:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
| <!--
/*
** Detect Flash Class & Path insertFlash Object
**
*/
var df = {
__release: "1.0",
_isIE: ( (navigator.appVersion.indexOf("MSIE") != -1) ? true : false),
_isWin:( (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false),
_isOpera:( (navigator.userAgent.indexOf("Opera") != -1) ? true : false),
getSwfVer: function (i) {
// Le versioni di NS/Opera dalla 3 in poi verificano la presenza del plug-in Flash nell'array dei plug-in
if (navigator.plugins != null && navigator.plugins.length > 0) {
if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
var descArray = flashDescription.split(" ");
var tempArrayMajor = descArray[2].split(".");
var versionMajor = tempArrayMajor[0];
var versionMinor = tempArrayMajor[1];
if ( descArray[3] != "" ) var tempArrayMinor = descArray[3].split("r");
else var tempArrayMinor = descArray[4].split("r");
//
var versionRevision = tempArrayMinor[1] > 0 ? tempArrayMinor[1] : 0;
var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
} else var flashVer = -1;
}
else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
else flashVer = -1;
//
return flashVer;
},
detectFlashVer:function (reqMajorVer, reqMinorVer, reqRevision) {
var reqVer = parseFloat(reqMajorVer + "." + reqRevision);
for (var i=25;i>0;i--) {
if (this._isIE && this._isWin && !this._isOpera) var versionStr = VBgetSwfVer(i);
else var versionStr = this.getSwfVer(i);
if (versionStr == -1 ) return false;
else if (versionStr != 0) {
if(this._isIE && this._isWin && !this._isOpera) {
var tempArray = versionStr.split(" ");
var tempString = tempArray[1];
var versionArray = tempString .split(",");
} else var versionArray = versionStr.split(".");
//
var versionMajor = versionArray[0];
var versionMinor = versionArray[1];
var versionRevision = versionArray[2];
var versionString = versionMajor + "." + versionRevision; // 7.0r24 == 7.24
var versionNum = parseFloat(versionString);
// è la versione maggiore >= versione maggiore richiesta è la versione minore >= versione minore richiesta
if ( (versionMajor > reqMajorVer) && (versionNum >= reqVer) ) return true;
else return ((versionNum >= reqVer && versionMinor >= reqMinorVer) ? true : false );
}
}
return (reqVer ? false : 0.0);
},
// TO DO
insertFlash: function(n,w,h) {
if( this.detectFlashVer(8,0,0) ) {
n += ".swf";
document.write( '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,29,0" width="'+w+'" height="'+h+'">\n' );
document.write( '<param name="movie" value="'+n+'" />\n');
document.write( '<param name="quality" value="auto" />\n' );
document.write( '<embed src="'+n+'" width="'+w+'" height="'+h+'" quality="auto" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash"></embed>\n' );
document.write( '</object>\n');
} else document.write( '<a id="flash_alternate" target="_blank" href="http://www.adobe.com/go/getflashplayer"></a>' );
}
};
//--> |
Come al solito, Internet Explorer (7) si differenzia e vuole un codice appositamente strutturato in VBScript:
[vb]
[/vb]
Salviamo questi due file (df.js e df.vbs nella cartella js) e includiamoli nella nostra pagina (index.html, index.php o default.html, ecc…) all’interno del TAG HEAD.
1 2
| <script language="javascript1.2" type="text/javascript" src="js/df.js"></script>
<script language="VBScript" type="text/vbscript" src="js/df.vbs"></script> |
Ora abbiamo tutto il necessario e possiamo spostarci nella pagina che conterrà l’oggetto Flash. Posizionatevi nel punto dove Flash sarà visualizzato e inserite il seguente codice:
1
| <script language="javascript1.2" type="text/javascript">df.insertFlash("flash/splash","900","122"); </script> |
Nell’esempio abbiamo assunto che esista un file splash.swf nella cartella flash! Notate che non è necessario inserire l’estensione swf. I due numeri 900 e 122 sono le dimensioni.
Ancora meglio sarebbe supportare il caso – remoto – dove Javascript è stato disabilitato. In questa circostanza potete scegliere di procedere in due modi:
1. Inseire direttamente in codice OBJECT/EMBED
2. Notificare che Javascript è disabilitato
Nel primo caso perdiamo il controllo sulla presenza di Flash ed Explorer richiederà di attivare il controllo ActiveX. Tuttavia il filmato sarà visibile, se Flash è installato.
Nel secondo caso possiamo mostrare un’immagine e/o notoficare che con Javascript spento non è possibile verificare la presenza del Plug-in Adobe Flash. Ad esempio, scegliendo la soluzione numero 1:
1 2 3 4 5 6 7 8 9 10
| <div id="claim">
<script language="javascript1.2" type="text/javascript">df.insertFlash("flash/splash","900","122"); </script>
<noscript>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="900" height="122">
<param name="movie" value="flash/splash.swf" />
<param name="quality" value="high" />
<embed src="flash/splash.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="900" height="122"></embed>
</object>
</noscript>
</div> |
Rilevare Flash e gestire le numerose alternative, come spiegato su Flash detect: come rilevare Flash, non è proprio comodissimo, speriamo almeno che la cosa non andrà a peggiorare con il tempo.
Continua...
Come si può determinare se un browser ha installata la versione corretta del Plugin Adobe Flash? Per fare questo esistono – notoriamente – 5 tecniche:
- Affidarsi alla caratteristica auto-installante dei TAG OBJECT ed EMBED
- Utilizzare uno script (Javascript e/o VBScript) appositamente fornito da Adobe
- Utilizzare un artifizio con un solo filmato Flash
- Non fare nulla
- Far scegliere all’utente
Continua...
Sul Blog di IE7 è uscito un articolo (IE6 and IE7 Running on a Single Machine) che potrebbe migliorare le notti insonni di molti sviluppatori Web! Microsoft si è resa conto (fortunatamente) che l’avvento di Internet Explorer 7 causa, di fatto, l’abbandono della precedente versione 6. Infatti non è possibile far convivere entrambi i browser sulla stessa macchina. Per gli utenti finali questo non è un problema, ma per gli sviluppatori Web che vogliono mantenere una compatibilità con la versione 6 è un vero e proprio disastro. La soluzione, proposta su vari altri Blog, è quella di utilizzare una macchina virtuale, come VMWare o Virtual PC della setssa Microsoft.
L’indicazione è quella di installare sulla macchina reale principale l’ultima release del browser, la versione 7. Dotarsi poi di un player o di un software di virtualizzazione così da far girare virtualmente in questo ambiente separato la vecchia versione 6 di explorer.
NOTA BENE:
Microsoft mette a disposizione anche un file con un ambiente già virtualizzato, scaricabile all’indirizzo:
http://go.microsoft.com/fwlink/?LinkId=70868
Questo file si traduce in un .vhd file, non utilizzabile con VMWare. Inoltre chi possiede un Windows XP Home – come vedrà – non potrà utilizzare Virtual PC 2004 di Microsoft che richiede almeno Windows XP Professional (sul sito questa informazione è indicata davvero male!).
Tuttavia, quasi a voler essere un pesce d’aprile, il 1 Aprile 2007 questa macchina virtuale non sarà più utilizzabile! Nel Blog viene comunque sottolineato che il team di sviluppo spera di poter rilasciare in futuro ulteriori aggiornamenti di queste macchine virtuali preconfezionate.
Morale, questa soluzione è comunque approssimativa e non soddisfa davvero tutti! Andrebbe permesso l’uso di VMWare e quindi rilasciata una macchina virtuale compatibile con questo software, palesemente concorrente a Virtual PC 2004 – da poco rilasciato free da Microsoft
– o travare un modo per convertire il file .vhd di Microsoft in un file accettabile per VMWare. Se avete suggerimenti…
Continua...
Conitnua a stupire la totale differenza di resa tra i vari browser in commercio. IE7 tratta i PNG (ad 8 bit o 24) in modo differente da FireFox. Anche Opera non è esente da qualche strana manifestazione a riguardo. Nel particolare i PNG usati come sfondo sono resi in modo differente da IE7, Opera e FireFox. Quest’ultimo è quello che si comporta meglio di tutti e a tal proposito sarebbe ora di nominarlo browser del “secolo”! Complimenti al team di sviluppo.
IE7 crea un simpatico effetto di taglio su un’immagine PNG usata come sfondo in repeat-x. Se provate a creare un immagine di 200×200 pixel con una sfumatura che va dal nero (0×000000) a grigio (0xeeeeee) in verticale e la posizionate nel CSS come sfondo del body in ripetizione orizzonale (repeat-x), impostando come sfondo del body il colore 0xeeeeee – ovvero la fine della sfumatura, noterete che solo FireFox rende perfettamente lo stacco, IE7 e Opera mostrano un simpatico effetto di taglio (ma leggermente diverso!!!): in pratica si vede la fine della nostra immagine 200×200 e l’inizio dello sfondo a colore piatto.
Un modo per risolvere il problema è quello di salvare la nostra immagine in GIF…
Ma i PNG non erano supportati da IE7?
Continua...
E’ giunta l’ora – per gli sviluppatori Web – di prendere misure drastiche contro l’ostinata mania dell’incompatibilità tra i browser. Proponiamo, quindi, un simpatico boicottaggio di Microsoft Internet Explorer 7 che, dopo anni di sviluppo, blog, referendum e white paper, continua a mostrare evidenti sintomi di incompatibilità cronica. Ci dispiace in fin dei conti criticare continuamente il lavoro dei “colleghi” di Redmond, ma i difetti riscontrati nell’ultima release di Explorer sono così macroscopici che non possono essere percepiti come semplici sviste.
La cosa più preoccupante è la presenza di bachi clamorosi presenti già nella versione 6 di IE! Non è possibile, quindi, accettare un simile comportamento da chi possiede un monopolio incontrastato del software di navigazione Internet più diffuso. Purtroppo, infatti, Internet Explorer 6 risulta ancora il browser più utilizzato, anche se FireFox in questi anni ha percorso orgogliosamente la sua strada verso un successo tutto meritato.
Basta, quindi, con patch HTML, CSS e Javascript (o JScript?!)!
Browser tutti uguali?
C’è chi sostiene che una perfetta compatibilità tra i browser non sarà mai raggiunta. In effetti qual’è la vera differenza tra Internet Explorer e FireFox? Ad oggi le funzioni di feed, zoom, schede, ecc… sono presenti su praticamente tutti i browser in commercio, da Safari a Opera. Quindi quale scegliere? Forse non si deve scegliere! E’ proprio questo quello che manca. Oggi, invece, siamo tutti costretti a scegliere, sia come Web Developer che come end-user. L’esperienza, infatti, ci insegna che quel sito è navigabile con Safari, ma quell’altro è funzionante solo con FireFox. In pratica, sulla propria macchina, bisognerebbe avere almeno 3/4 browser per essere sicuri di navigare con tranquillità nell’immmensità di Internet!
Il chè ci pare davvero assurdo!
E il bello è che è già così!!
Se aggiungi un sito tra i preferiti ti devi ricordarti di esportarlo negli altri quattro browser, altrimenti se non sia mai domani ti trovi a navigare con un browser diverso non trovi più il link che ti eri – giustamente – memorizzato. Se memorizzi un certificato delle tua banca? Le liste dei feed? Insomma, questo è un gioco al massacro, non certo informatica!
Bisognerebbe prima di tutto sistemare una volta per tutte la questione della resa visiva dei browser (CSS/HTML/XML, … ) e della compatibilità di scripting (Javascript/JScript). Fatto questo, allora, stupire il mondo con un browser in grado di possedere delle caratteristiche proprie e non un copia di quelle di un’altro!
Ognuno di noi è libero – o dovrebbe essere libero – di installare sul proprio PC il browser che ritiene più idoneo. La questione è che questa libertà ci viene negata dall’incompatibilità dei browser e il lavoro dei Web Developer diventa faticoso, costoso (in termini di tempo e denaro) e poco efficente, con rischi continui di bachi nascosti e altre falle!
Continua...
A Redmond devono avere qualche grosso problema di comprendonio! Risulta magnificamente assurdo che sul finire dell’anno 2006 ancora non ci siano le basi per una – anche – approssimata compatibilità tra IE7 e Firefox! Nonostante il rilascio ufficiale – anche se con un set limitato di localizzazioni – di Internet Explorer 7, l’engine di rendering delle pagine soffre ancora di evidenti difetti di programmazione! Senza infierire entrando in numerosi dettagli elenco solo due clamorosi bachi ancora presenti in questo rilascio ufficiale!!
Prima di tutto i PNG vengono resi differentemente dai GIF… e, peggio ancora, in position absolute subiscono strani contorni a seconda di come gira a IE!! Evidente baco? O follia di qualche junior-developer?
Sul fronte CSS la pseudo classe :hover continua a non essere supportata su tutti i TAG, nonostante molti blog la diano per funzionante! Ma su quale sistema? Vedi W3C…
Un semplice p:last-child è praticamente ignorato! Giustamente Microsoft ha supportato p:first-child. Ora, se implementi il first che cosa ti costa implementare anche last? Mistero…
L’apice dell’assurdo, poi, lo si ottiene con le liste puntate! Udite udite! IE7 si comporta esattamente come IE6! Della serie: vi siete portati appresso codice fallato? Troppi copia e incolla evidentemente! Se definitie una lista con i canonici UL LI e un’immagine personalizzata come list-point, non provate ad usare un float sull’elemento LI, l’immagine scomparirà misteriosamente, esattamente come accadeva su IE6!! L’unico, manco a dirlo, a rendere il tutto corretto è il solito – vecchio – FireFox!
Sul blog di IE7 sono numerose le lamentale. Nonostante sia apprezzato lo sforzo del pachiderma Microsoft di aprire un blog durante lo sviluppo di un software come IE7, rimane tuttavia il dubbio dell’efficacia di questa mossa. Hanno davvero ascoltato le richieste degli utenti-sviluppatori? Il blog di IE7 è stato aperto con troppo ritardo?
Ancora una volta non ci resta che attendere una service-pack prossima ventura…
Continua...
Ultimi Commenti
Giovambattista Fazioli: @Nik: Sono contento! In bocca al lupo dunque!!
Nik: Lunedì ho l’esame di informatica su java, grazie mi sei stato utilissimo, il libro che ho era poco chiaro...
Marco: Ti ringrazio moltissimo, mi hai illuminato
ho risolto impostando [cc_objc] //OptionViewController.m -...
Giovambattista Fazioli: @Marco: Ti consiglio un approccio credo più corretto. Se hai eseguito il subclass del tab...
luigi: molto chiaro e semplice devo ammettere che anche scrivendo da un pà difficilmente uso delegati creati da...