Skip to main content

Home/ Web Performance/ Group items tagged JS

Rss Feed Group items tagged

Frank Taillandier

High Performance Web Sites :: Render first. JS second. - 0 views

  •  
    gros parti pris de Souders sur l'exécution de javascript : il ne devrait même pas être asynchrone, mais différé jusqu'à ce que la page soit rendue
  •  
    Il n'a pas tout à fait tort, mais il oublie quand même pas mal de choses sur les interfaces modernes. Beaucoup n'ont pas de fallback, ou un fallback très mauvais. Genre un bouton commander qui ouvre une popin. Il est impossible d'envisager ne pas accrocher immédiatement le gestionnaire javascript
jpvincent

mode apache pour accélérer les sites - 2 views

  •  
    il modifie à la volée le HTML pour gérer le cache des statiques, compresser HTML, concaténer JS/CSS, mettre CSS/JS inline ou le contraire,
Éric D.

Performance web: compression des frontaux JS/CSS | Pixelboy | pixels, javascript, et de... - 2 views

  •  
    "Performance web: compression des frontaux JS/CSS "
Oncle Tom

Big performance wins by optimizing fonts - 2 views

  •  
    Super technique pour servir des @font-face de la manière la plus adaptée qu'il soit à l'utilisateur, en tenant compte de sa langue etc.
Laurent Paoletti

Lazy loading below the fold - 6 views

  •  
    I've started experimenting with my home page to make it load even faster. Amazon famously does this too which you can read more about in this Steve Souders post. They make sure everything that needs to be visible above the fold is loaded first, then, it starts loading all the other "stuff" below the fold.
  •  
    Assez d'accord avec les commentaires , il faut éviter que le crawler passe sur la ressource dédiée au chargement des huits autres articles, sinon il y a un risque de duplicate content. Pour éviter cela il faut gérer des règles pour robots.txt, est-ce suffisant ? Le découpage je le fais plutôt au niveau du styling CSS et JS. J'inclue le style css indispensable à l'affichage et charge le reste . Bref il y aussi le risque de reflow dans ce cas.
  •  
    Indian Cheap Escort In Dubai Model Cheap Escort In Dubai Massage Cheap Escort In Dubai Call Girls Cheap Escort In Dubai Vip Cheap Escort In Dubai Desi Indian Escort In Dubai Desi Pakistani Escort In Dubai Desi Call Girls Escort In Dubai Desi Punjabi Escort In Dubai
anonymous

azurams/Magento-Minify - Minification CSS / JS pour Magento - 0 views

  •  
    "WBL_Minify extension enables minification of magento css merged files and/or javascript merged files."
Éric D.

Don't let jQuery's $(document).ready() slow you down | Encosia - 4 views

  •  
    à voir quand même à quel point ça ne lance pas un timer qui occupe le cpu navigateur inutilement
  •  
    A noter que si les js sont insérés en bas de page, le gain sera moindre puisque le dom sera chargé. Remarque, utiliser $(document).ready() en bas de page c'est peut-être un peu enfoncer des portes ouvertes.
  •  
    Utiliser trop souvent $(document).ready sur VOTRE code c'est aussi laisser tous les autres scripts (pubilicités/widgets) s'exécuter avant vous. Ainsi ils peuvent créer autant d'éléments et occuper des requêtes navigateur pour rien. Trop souvent il est automatiquement conseillé d'utiliser $(document).ready (genre dans les guidelines pour débutant), sauf que la plupart des widgets (et surtout des publicités) se moquent de ces recommandations. Toujours maitriser l'ordre de téléchargement des éléments de votre page avant de décider d'utiliser ou non $(document).ready pour vos initialisations.
Éric D.

jQuery Fundamentals - 4 views

  •  
    Le chapitre 9 de l'excellent "jQuery Fundamentals", consacré aux performances
  •  
    quelques trucs utiles (genre detach, l'utilisation de data, l'object literal lookup) mais complètement contre le "append en une seule fois", pour des raisons de sécurité. Après, c'est très facile de se retrouver avec du XSS. J'utilise intensivement .text() pour écrire mon texte à l'intérieur des éléments (qui utilise createTextNode, qui n'exécute donc pas le JS ou le HTML éventuel).
anonymous

Efficiently Rendering CSS | CSS-Tricks - 16 views

  •  
    Ne pas oublier la fin : "I think the lesson here is not to sacrifice semantics or maintainability for efficient CSS"
  • ...10 more comments...
  •  
    je suis pas d'accord avec tout. par exemple : "Don't [tag qualify] with class names either" => j'avais justement lu le contraire. Qu'un "a.toto" était plus efficace qu'un ".toto". Mais ça dépend aussi peut-être des moteurs... D'ailleurs, je ne comprends pas pourquoi les moteurs ne cherchent pas d'abord le bout le plus discriminant dans le sélecteur. Ça arrive souvent de commencer un sélecteur par un sélecteur d'ID, et il me semble que ce serait plus rapide que de commencer par lui, plutôt que par le tag qui se trouve à la fin (ex: #menu a { }).
  •  
    Oui si .toto est présent sur le même type de tag à savoir "ul" ..inutile d'écrire ul.toto. " .toto" suffit et est apparement plus rapide à interpréter. C'est le cas pour les nouveau parseurs DOM il me semble (firefox). Après savoir si tous la navigateurs se comportent de la même façon sur ce point, je l'ignore.
  •  
    mais par exemple, dans un jQuery, c'est le contraire, semble-t-il. Si la perf de querySelectorAll est la même que celle utilisée pour appliquer les CSS, on doit pouvoir tester avec jsperf.com.
  •  
    "Use class selectors instead of descendant selectors." http://code.google.com/intl/fr/speed/page-speed/docs/rendering.html "It's clear that CSS selectors with a key selector that matches many elements can noticeably slow down web pages." http://www.stevesouders.com/blog/2009/06/18/simplifying-css-selectors/
  •  
    Oui, c'est l'opposé sur jquery, parce que jquery ne peut pas utiliser les index du navigateur efficacement. Ceci dit ça peut changer à l'avenir pour jquery au fur et à mesure qu'ils pourront utiliser les API querySelector et ce genre de choses. Deux règles : - finir de préférence sur le sélecteur #id, ou .classe, éventuellement un nom de balise (mais si possible pas un trop fréquent), pas de sélecteurs plus complexes (attribut seul, pseudo sélecteur, *) - éviter de surspécifier le sélecteur à gauche
  •  
    "finir de préférence sur le sélecteur #id" : si on peut faire ça, autant le mettre directement tout seul, non ?
  •  
    Non, car ton élément #id peut avoir un style différent selon le contexte
  •  
    Sachant que la plupart (tous) des navigateurs lisent les règles CSS de droite à gauche, il vaut mieux éviter de spécifier le tagName. Dans des librairies comme jQuery le problème est un peu différent même si jQuery (sizzle) lit aussi de la droite vers la gauche. Sur les navigateurs qui n'implémentent pas certaines fonctionnalités comme getElementsByClassName (IE6-8), sélectionner $('.maclasse') sera plus long que $('a.maclasse'). Le mieux étant de faire $('.maclasse', noeudDomDeDepart) si on sait a peu près où sont les classes pour éviter de traverser tout le DOM. Autre différence $('#mydiv span');sera plus rapide que $('span'); Alors qu'on pourrait croire que jQuery lit toujours de la droite vers la gauche, il effectuera une exception ici et sélectionnera d'abord $('#mydiv') puis regardera les "span". (http://forum.jquery.com/topic/about-selectors-right-to-left#14737000000472293) Enfin si on travaille sur des noeuds qui ne sont pas encore dans le DOM (pas de append()) , les méthodes employées pour parcourir le noeud seront de simples boucles qui regardent tous les noeuds, pas d'accès à getElementsByClasseName ni getElementbyId. Là dans ce cas il vaut mieux spécifier carrément le tagName + la classe (voire l'ID) ça évite de faire des tours de boucle pour rien. ça reste des cas franchement spécifiques qui ne devraient pas exister, on ne parcourt pas des noeuds html qui ne sont pas dans le DOM dans une application classique et on évite de faire des sélections brutes de $('.classe') si on connait a peu près la structure DOM. Edit: jquery (sizzle) utilise querySelectorAll quand disponible, sinon des méthodes perso combinées avec getElementbyId, className, tagname. http://www.neeraj.name/2010/02/15/how-jquery-selects-elements-using-sizzle.html
  •  
    Comme j'aime bien embêter : Jquery et le natif utilisent les algos aux propriétés presque opposées dans certains cas. Comme le jquery peut renvoyer vers le natif, si vous cherchez trop la bête, vous irez forcément dans le mur sur certains navigateurs. Bref, faites simple. Un "#xxx .yyy" sera à peu près acceptable sur jquery comme sur le natif pour peu qu'on n'utilise pas trop souvent la classe en dehors de l'arbre #xxx. C'est peut être le compromis qui passera le mieux partout (simple pour le navigateur parce qu'il utilise son index pour trouver le .yyy, que remonter au #xxx sera rapide, et qu'il ne remontera pas trop souvent inutilement ; et simple pour jquery parce que grâce à #xxx il peut isoler un arbre DOM restreint sur lequel lancer sa recherche)
  •  
    Comme cette discussion est oriente vers le js: Des selecteurs optimisés c'est bien, un bon design d'application c'est mieux. selection d'une collection - binding d'une fonction sur ces éléments ---> anti-pattern. Event Delegation ----> pattern (lors de l initialisation) selection d'une collection - modification de propriétés css ----> anti-pattern insertion d'html préstylé (classes) ---> Pattern
  •  
    @Vincent Juste pour pinailler : > Le mieux étant de faire $('.maclasse', noeudDomDeDepart) Je dirais le mieux serait même $('noeudDomDeDepart').find('.maclass') Source : http://jsperf.com/jquery-selectors-context/2
  •  
    sans les tirets alors :-) À la base, je trouve ça assez fou que $(XXX).find(YYY) soit tellement plus rapide que $(YYY, XXX). Mais quand on regarde le code on voit qu'il y a beaucoup de "if" dans l'init de jQuery et que les cas les plus courants sont placés en premier. Le cas du contexte est traité à la toute fin, ça explique la différence.
Maurice Svay

JPEG with Alpha - 1 views

  •  
    Proposition pour embarquer l'alpha dans un fichier JPEG
  •  
    j'espère que ça restera vraiment une "expérience", utiliser canvas, javascript, css pour afficher une image transparente, avec ces inconvénients : # By default, the images load without their alpha, then get alpha'd causing a flash. This can be worked around by making them invisible until correctly loaded. # The image must reside on the same server as the web page or the cross site scripting prohibitions in AJAX will come into play. # My examples are double loading the image, for some reason the AJAX fetch is not using the cache. I don't know why, but it is probably just me. ça reste un affreux bricolage qui pourrait donner des envies à des gens qui n'y connaissent rien et pourrir des sites avec ça. Mais l'expérience est "amusante" de là à en faire une "proposition", j'ai des doutes
  •  
    C'est clair qu'afficher l'alpha avec canvas+js reste du bricolage. En revanche, si les implémenteurs arrivent à se mettre d'accord pour le faire directement dans le navigateur, ça pourrait être intéressant.
Oncle Tom

Overclocking SSL - 2 views

  •  
    Comment réduire la charge CPU et le temps d'affichage des pages en SSL, avec un patch et pas mal de bonnes idées.
  •  
    côté serveur, ça a l'air par mal, surtout qu'ils l'ont testé sur Gmail. Par contre côté client, il me semble que tous les objets (images, css, js) ont aussi besoin d'être décodés, ce qui prend du temps CPU au client. Pour Gmail qui a très peu d'images, ça n'est pas un problème, mais pour un site lambda, ça peut commencer à compter
‹ Previous 21 - 40 of 51 Next ›
Showing 20 items per page