Brico-Info - le blog de Bruno CATTEAU

Aller au contenu | Aller au menu | Aller à la recherche

mardi 15 mai 2007

Compatibilité Mac - bug sur les boutons radio

On va appeler ça un billet niche...

Sous Safari 1.3.1 (OSX 10.3.9)  (c'est précis !) les boutons radios doivent être contenus dans un noeud FORM, sinon, ils ne sont pas gérés comme des radios (c'est à dire un seul peut être coché) mais comme des checkbox...

  1.         <INPUT type=radio value=1 name=choix> cas 1
  2.         <INPUT type=radio value=2 name=choix> cas 2
  3.         <INPUT type=radio value=3 name=choix> cas 3
  4. </FORM>

Même si vous exploitez ces boutons radio par les DOM, sans soumettre le formulaire

Plus niche que ça, tu meures !

vendredi 20 octobre 2006

Tests sur les nouvelles versions des navigateurs

En cette periode de sortie des nouvelles versions de Internet Explorer et Firefox, j'ai voulu vérifier ce que l'on dit (IE c'est nul, Opéra, il parait que c'est hyper rapide, etc...)

J'ai testé un ensemble de petits scripts javascript téléchargeables ici. En gros, le principe est de faire en boucle plusieurs fois une même action pour mettre en evidence une lenteur ou une rapidité relative... A noter que ce n'est peut etre pas l'action en elle même qui crée une lenteur, mais peut être la succession de cette action. L'exemple typique est d'executer 10 000 fois document.getElementById('id_div').innerHTML += 'toto'; ...

Les navigateurs séléctionnés sont les suivants :

                                                          
Opera 9.0  Firefox 1.5  Firefox 2.0  Internet Explorer 6  Internet Explorer 7

 Voilà le tableau des résultats (les temps ont été pondérés pour être comparables)

  innerHTML += innerHTML = objet image getElementById getElementById innerHTML DOM
Opera 9 4,483 1,83 3,2 4,56 1,748 6,72
FF 1.5 11,83 7,407 5,92 6,28 7,936 10,78
FF 2.0 8,875 5,625 10,62 5 5,688 8,59
IE 6  3,437 9,705 3,44 9,4 12,752 6,88
IE 7 3,922 9,189 4,7 9,4 11,124 5,31

et en image :

Mes conclusions :

  • La nouvelle version de Internet Explorer et de Firefox est meilleure que l'ancienne (on pouvait l'esperer...) (Sauf sur lacréation de l'objet image pour IE7, mais c'est peut être mon test qui est à remettre en cause...)
  • Opera est plus rapide, c'est plus qu'une idée reçue, c'est vrai... (ou au moins vérifié par Bruno CATTEAU...). Par contre, ils ont encore des progrès à faire au niveau des CSS...
  • Firefox n'est pas si rapide que ça par rapport à Internet Explorer, mais dans le chargement de la page, il accèpte d'afficher le début d'un tableau ou d'un div même s'il n'a pas rencontré la balise de fermeture, ce qui augmente l'impression de vitesse, et c'est ça le plus important. Opera a l'air de jouer beaucoup sur ce dernier point, on le voit même dans mon script test_innerHTML.html.
  • Au niveau de la gestion des erreurs, Firefox est très loin devant, surtout quand il est associé à l'extention Firebug. C'est certainement pour ça qu'il est tant apprecié des développeurs AJAX (en plus de mieux respecter les standards). Développer une application AJAX avec Internet Explorer c'est comme reparer un magnétoscope dans le noir (désolé, je n'ai pas trouvé mieux...).
  • Si vous êtes utilisateur, j'ai envie de vous conseiller Opera.
  • Si vous êtes développeur, vous devez déjà utiliser Firefox... et testez vos applis sur le moins bon des navigateurs pour voir si la pire version est acceptable. Eviter d'utiliser innerHTML += dans une boucle doit devenir une habiture...

 

lundi 2 octobre 2006

Problème de focus...

Si vous cherchez des infos sur la façon de contourner l'erreur javascript suivante, vous êtes au bon endroit :

Error: [Exception... "'Permission denied to get property
XULElement.selectedIndex' when calling method:
[nsIAutoCompletePopup::selectedIndex]"  nsresult: "0x8057001e
(NS_ERROR_XPC_JS_THREW_STRING)"  location: "JS frame :: filename> :: onmouseover :: line 1"  data: no]

Cette erreur est apparue chez moi au moment de donner le focus à un champ que je venais de créer (par les DOM ou par un innerHTML). C'est un bug connu chez Firefox qui n'est pas bloquant.

Après recherche et lecture des pages suivantes :
 - http://groups.google.ca/group/netscape.public.mozilla.dom/browse_thread/thread/821271ca11a1bdbf/46c87b49c026246f?lnk=st&q=+focus+nsIAutoCompletePopup+selectedIndex&rnum=1#46c87b49c026246f
 - https://bugzilla.mozilla.org/attachment.cgi?id=143270

Voilà les solution pour contourner le problème :

Sous Firefox, il faut ajouter la proprieté autocomplete="off" au champ sur lequel on veut faire le focus,

Sous Internet Explorer, il faut laisser le navigateur respirer avant de trouver le champ pour lui donner le focus : setTimeout(function(){$('saisie').focus();},100);

 

dimanche 20 mars 2005

XmlHttpRequest : comment ça marche ?

Tout le monde en parle, Google l'utilise mais au fait qu'est ce que le XmlHttpRequest ? Voici une première version d'un tutoriel (ou tutorial) qui sera bourré d'exemples !

Lire la suite...