Mise à jour de Kajax 2.2



Toujours soucieux de garantir les meilleurs performances possibles autant côté client que côté serveur, je viens de faire une mise à jour de fond du  noyau javascript de Kajax qui diminue d'environ 130% la charge de la bande passante/temps de générations des pages pour un jumper ( un utilisateur qui consulte moins de 2 pages sur le site ) et de plus de 560% pour un visiteur interessé.


Tout est parti d'une erreur liée à la librairie js calendar de Dynarch ... J'ai réalisé qu'à chaque envoie d'une requète Ajax, mes javascripts étaient systématiquement remontés, causant d'une part une surcharge inutile de la bande passante et d'autres part, un plantage systématique de certains scripts.

Au programme de cette mise à jour :

  1. Optimisation du traitement des javascripts, dorénavant les librairies déjà chargées chez le client ne sont plus réenvoyées par le serveur, seul une petite ligne de code est envoyée, elle sert à instancier la classe utilisée par la page ( j'ai choisi la fonction de hash md4 pour la détermination de l'id unique des js pour la simple raison, qu'elle est, à l'heure actuelle, la plus rapide ).
  2. Optimisation du traitement des css, dorénavant les css déjà chargés chez le client ne sont plus réenvoyés par le serveur
  3. Réécriture et optimisation de tous les javascripts sous forme de class en extenssion de la librairie Prototype
  4. Migration du flux JSON vers XML, on perd un peu en bande passante ( ce point est très discutable dans la mesure où l'on est obligé d'échapper certains caractères en JSON, alors qu'en XML, le format CDATA s'occupe de tout ), mais on gagne en propreté et en facilité de gestion, qui plus est je compte implémenter prochainement un système de validation automatique du flux via le XSD propre au XML reçu.
  5. Optimisation du traitement des erreurs liées au flux, via un écran propre et précis (généralement).
  6. Optimisation de la compression des javascripts (j'ai laissé tomber le packer, trop lourd et trop de soucis avec l'UTF-8)
  7. Optimisation de la compression des css
  8. Optimisation de la compression du contenu HTML
  9. Compression des images au fomat PNG via PngOptimizer
  10. Ajout d'une fonctionnalité qui permet d'avoir un javascript non lié au core qui se charge sur l'ensemble du site
  11. Le formulaire de recherche  ( en haut à droite ) est dorénavant générée après le chargement de la page ... l'utilisation de l'autocompletion implique un non respect à la lettre des normes imposées par le W3C ( en l'occurence l'attribut autocomplete="off" qui permet de ne pas activer l'autocompletion native du navigateur )
  12. Optimisation du flux XML, les constantes du site sont chargées dynamiquement dans le noyau javascript au lieu d'être transportée systématiquement sur le flux

Et pour finir, un petit coup de gueule contre notre cher IE qui m'a fait perdre plus de 10 heures pour ... rien .... Ce navigateur à la noix m'a, pour une nième fois, mis des dizaines de batons dans les roues avec ces comportements "étranges". La dernière perle en date et que si vous avez un div id="toto" et une variable js qui s'appelle toto, si vous faites un alert(toto) ... qu'obtenez vous ? ... HTML DIV Element. A croire que l'équipe de dev en charge d'IE chez microsoft se drogue.

Partager sur les réseaux sociaux !        



0   Suivre les commentaires :   ou    

  Laisser un commentaire  

Partenaires : Le Monde Numérique - Création de site internet dynamique
Cabinet d'expertise comptable - Construction de maisons individuelles

WebAnalytics