webleads-tracker

[Débat] Anti-Javascript : Est-ce aujourd'hui encore justifié ?

Jean-Gaël
Problématique :

A l'heure où l'AJAX est en plein essort, où les postes clients sont de plus en plus puissants et où les intégrateurs HTML découvrent des bugs navigateurs véritablement bloquants, qu'en est-il de l'acceptation du javascript par les utilisateurs ?
Devons-nous nous adapter, nous, petits intégrateurs XHTML ?
Devons-nous revenir aux méthodes Javascript ou bien continuer à vouloir optimiser au maximum une page tout CSS ?



Exemples :

- l'AJAX :
Au vu de la démultiplication des sites utilisant l'AJAX, refuser le Javascript reviendra bientôt à ne plus pouvoir surfer...
Quand vous voyez un site comme celui-ci : http://www.meebo.com/, refuser le Javascript, c'est se mettre une épine dans le pied, le site ne _peut tout simplement pas_ s'afficher sans JS.

- Bugs CSS :
Ici je vais vous parler d'un bug si peu connu qui apparait sous IE (Internet Explorer).
En effet, lorsque on a l'excellente idée, à priori, d'ajouter une image de fond dans un lien... Pour un menu par exemple... La pseudo-classe ":hover", existante par défaut sur les liens (même si vous ne l'ajoutez pas manuellement dans votre .css) va envoyer une requête au serveur pour récuperer la fameuse image de fond en local.
Sachez qu'IE<7 ne garde pas en cache les background-image.
Ce qui a pour conséquence désagréable non seulement d'envahir le serveur de requêtes inutiles mais aussi d'afficher un scintillement lors du survol.
C'est là que Javascript revient à la charge avec sa méthode de préchargement et/ou de rollover !

Comme quoi les innovations CSS ne sont pas systématiquement bonnes à garder.


Alors survient cette question :
Est-ce que cela vaut-il encore le coup d'optimiser un site à tout prix sans Javascript ?

Pascal Derathé
Concernant ce bug (que j'ignorais également)...
une solution correcte ne serait-elle pas de précharger toutes les images qui seront utilisées en hover à la fin du chargement de la page d'accueil du site ou une autre serait d'utiliser le principe des portes coulissantes :
http://pompage.net/pompe/portescoulissantes/
et
http://pompage.net/pompe/portescoulissantes2/
Artisan du web à Saint-Genis Laval (près de Lyon)

Jean-Gaël
Justement, ce bug a été découvert sur le principe des portes coulissantes, je ne l'ai pas précisé.
Et effectivement, après divers tests parmi une communauté d'intégrateurs HTML, aucune technique CSS ne résoud le bug lié à IE<7.
IE ne cherche pas l'image de fond d'un lien dans son cache.

Il existe deux solutions :
- Forcer la mise en cache via une configuration des serveurs (Franchement... Evitons ceci. Ce n'est pas finalement pas une solution, autant rester avec le bug CSS.)
- Revenir au javascript, tout simplement. Après tout, quelles en sont les réelles contraintes aujourd'hui ?
C'est de cette question que survient ce débat sur Javascript.

Jean-François Galles
Pour ce "bug" en particulier, il suffit d'utiliser une seule image de fond, qui contient le fond + le fond:hover (au dessous par exemple).
La propriété CSS qui change lors du rollover sera simplement background-position, et non plus background-image.
Fini le gap de chargement :)

Quant au débat javascript, tant qu'on peut s'en passer en respectant les standards, autant ne pas se priver. Et quand on cherche un résultat très spécifique et qu'on a réglé la question de l'accessibilité, pourquoi pas...
C'est comme toujours une question de choix et de cas.

Jean-François Galles
A ce propos on trouve, suite à une discussion sur leur forum, un bon article de synthèse chez alsacreations :
http://blog.alsacreations.com/2006/01/24/217-pourquoi-certains-nactivent-pas-javascript

et quelques stats où l'utilisation de javascript grimpe à 94% :
http://www.w3schools.com/browsers/browsers_stats.asp