IE9 béta a dopé son moteur Javascript

Bonjour à tout les passants, rares soient-il qui liront cet article !

Il y a quelques jour, le navigateur haït par tout développeur Web quel qu’il soit est sortie dans une nouvelle mouture dont le slogan est : « Bienvenue dans un monde plus beau ».

En passant leur banière est absolument horrible :

Bannière IE9 "Bienvenue dans un monde plus beau"

Bannière IE9 "Bienvenue dans un monde plus beau"

MEEEEEESSSS YEUUUXXXXXX !!! C’est quoi ce noir qui sort de nul part contrastant bien entendu avec le blanc, mais pas du tout avec l’arrière plan ! Cela ferait hérisser les cheveux de n’importe quel ergonome Web, en passant  en Noir et Blanc, le noir ne se différencie que très peu du bleu…

Bon une fois Internet Explorer 9 béta lancé, une erreur comme quoi la page ne peut se charger, amélioration ici, le message d’erreur est discret et non bloquant. Un petit click sur OK et … ah ! un autre message d’erreur… bon ben on reclic sur OK… ah ! nous revoilà sur le premier message d’erreur… Bon je suis mauvaise langue, c’est une béta, c’est normal.

Un message nous indiquant que le chargement de la page est surement ralentie par l’utilisation de plugin et nous invite à les désactiver en un clic. Petite interface bien pratique.

Nous apprenons ici que IE9 gère chaque page indépendamment, le premier onglet était buggé, mais pas le navigateur.

Au niveau du navigateur en lui-même quelques changements :

Interface IE9 béta

Interface IE9 béta

Et surprise, à l’instar de google chrome nous retrouvons une certaine simplicité d’utilisation : notamment avec la barre unique servant à la fois à la recherche et à entrer des urls. A l’ouverture d’un onglet nous avons également l’affichage des sites récents introduits il y a quelques temps par Safari. Je ne m’en sers que rarement mais nombre de gens y trouveront leur bonheur.

Maintenant du côté technique, IE9 est-il aussi respectueux des standards qu’il le prétend ?

Technique

Acid3

Pour savoir cela direction Acid3 :

IE9 et acid3

IE9 et acid3

Pour rappel, voici les scores des autres navigateurs :

  • Firefox 3.6 : 94%
  • Safari 5 : 100%
  • Chrome : 100%
  • IE6 : 12%
  • IE7 : 14%
  • IE8 : 20%

Quand on voit le retard des précédentes version de Internet Explorer, la réussite presque parfaite de ce test montre une grande évolution, mais surtout permet d’envisager une perte de temps négligeable pour les développeurs.

Précédemment, il fallait gérer tout les cas particuliers, majoritairement présents sur IE6, IE7 et IE8, désormais il faudra toujours gérer IE7 et IE8, mais IE9 s’en sortira de lui même. (comment ça IE6 a disparut de ma liste… :P )

Javascript

Maintenant continuons nos investigations par un petit test de performance Javascript.

Pour réaliser ce test j’ai utilisé SunSpider, en fermant toutes les applications éventuellement nuisibles aux résultats sur le PC. Tout les navigateurs sont testés dans les même conditions.

Le score indiqué en nombre de point et la somme du classement des navigateurs pour chaque tâche. (Ainsi sur crypto-md5, IE9 arrive 3e il a donc 1 point, Firefox arrive dernier 0 points, Safari 1er donc 3 points et enfin Chrome 2eme par conséquent 2points)


Total Benchmarks Javascript

Total Benchmarks Javascript

Voici le test complet en PDF téléchargeable ici :
Benchmarks Javascript – comparatifs IE9, Safari, Firefox et Chrome

Ou une lecture en ligne est disponible ici :
Benchmarks Javascript – lecture en ligne

Quelle ne fut pas ma surprise de voir le score de IE9 monter à 38 points, suivant de près Safari à 44 points et aussi de près chrome à 59 points. Firefox est tellement lent qu’il est presque hors concours : 11 points, avec des temps très longs, et même trop longs pour des fonctions simples.

IE9 arrive même à être le premier sur plusieurs temps de test, ce qui était in-envisageable précédemment.

WebSockets

Petite déception également, IE9 ne gère pas les WebSockets qui est quand même une évolution majeure en Web. Connaissant la rétiscence de Microsoft à intégrer de nouvelles technologies dans son navigateur, nous en avons pour quelques années encore avant que cela ne soit géré.

Pour ceux qui se demandent ce qu’est un WebSocket je vais le détailler rapidement. Je ferais surement un article plus complet avec node.js et les websockets dans le futur.

Lorsque un navigateur demande une page à un serveur, il ouvre une session, puis une connexion. Dès que le serveur retourne un message, la connexion se ferme. La session quant à elle reste ouverte plus longtemps, jusqu’à ce que le client devienne inactif et ne demande plus de pages pendant une certaine durée. Le problème est que nous avons deux transactions unidirectionnelles, d’un côté on fait une demande, de l’autre on retourne une réponse, mais dès que la réponse est arrivée la connexion se coupe et le serveur ne peut par conséquent plus envoyer de données jusqu’à ce que le client lui en redemande.

C’est très handicapant pour un chat par exemple, des méthodes existent pour outrepasser cette limitation, notamment utiliser du Pull grâce à ajax (rester en attente de donnée, et dès que des données arrivent depuis le serveur, on se remet en attente juste après la clôture de la connexion), ou tout simplement demander, toujours en ajax, toutes les X millisecondes si de nouveaux messages ne sont pas arrivés sur le serveur. Du coup les performances sont fortement réduites, le serveur tout le temps sollicité en connexion, etc…

Les websockets permettent justement de laisser une connexion ouverte en permanence depuis le serveur, ce dernier peut donc envoyer des infos quand il le veut, tout comme le client, nous avons donc une communication bidirectionnelle, voir omnidirectionnel en cas de communication à plusieurs, nous pourrons même nous affranchir du passage par le serveur.

The end…

Je pense que IE9 béta est il est vrai une grande évolution de Internet Explorer, plus respectueux des standards, plus performant au niveau Javascript, intégrant une gestion indépendante des onglets, en bref possédant ce qu’il doit avoir, pour un vrai navigateur moderne.

Bon, bien sur le mot de la fin est que je ne quitterai pas ni mon safari sous mac où mon chrome sous windows pour IE9, je trouve que l’interface a trop de fioritures, tels que les dégradés un peu partout, où encore le texte des onglets qui ne se différencie pas correctement de leur arrière plan. L’œil est inconsciemment attiré par ces détails, et le cerveau se concentre moins sur l’essentiel.

See you soon !!!

Share and Enjoy:
  • Google Bookmarks
  • Facebook
  • del.icio.us
  • Digg
  • Live

4 Responses to “IE9 béta a dopé son moteur Javascript”

  • Jono Says:

    Pas mal comme test !

    Concernant IE9 : tu parles des défauts d’interfaces (couleurs polices etc), vu que c’est une bêta, j’ose espérer que cela sera corrigé dans la finale :) Sinon, les progrès sur les tests sont impressionnants !

    • Jérémy TRUFIER Says:

      Yep, après les couleurs je ne pense pas que c’était un défaut à proprement parler, mais plutôt un défaut à mon sens ;) .
      J’aurais bien voulut faire les mêmes tests sous les autres IE, mais le processus d’installation et de désinstallation est trop imbuvable ! Pourquoi ne peut on pas lancer une béta à côté d’une version stable ^^!

  • Someone Says:

    Les websocket ne sont gérer par pratiquement aucun navigateur, voir ne sont carrément pas sur le planning de développement du faite d’une faille de sécurité dans le protocole, tu trouvera facilement des explications par exemple ici :

    http://hacks.mozilla.org/2010/12/websockets-disabled-in-firefox-4/

    Aller la bise au chat.

    • Jérémy TRUFIER Says:

      Chrome et Safari gèrent depuis bien longtemps les WebSockets, et à l’époque où j’ai rédigé cet article, les bétas de Firefox 4 avaient cette fonctionnalité, et elle était sur le planning d’Opera.

      Du côté de nos amis sous Webkits, la faille de sécurité n’a pas l’air d’être pertinente à première vue.

      Et tu as faux, les websockets sont d’ors et déjà présents dans les navigateurs les plus utilisés à l’exeption de IE9, ils sont juste désactivé « Par Défaut » sous Firefox et Opéra, mais il y a des moyens de les réactiver au détriment de la sécurité.

Leave a Reply