Skip to main content

Home/ Web Performance/ Group items tagged librairie

Rss Feed Group items tagged

Oncle Tom

Microjs: Fantastic Micro-Frameworks and Micro-Libraries for Fun and Profit! - 7 views

  •  
    Petite appli en ligne pour générer son propre framework Javascript, basé sur votre propre sélection de librairie, de JSON2 à Spine en passant par Ender. Les tailles sont indiquées et les librairies choisies le sont en particulier pour leur robustesse et faible empreinte mémoire.
  •  
    J'ai assisté à la présentation de Zepto à la JSConf Ce micro framework permet d'avoir une API compatible avec jQuery, mais utilisant directement les implémentations native de webkit. Il est destiné à fonctionner sur les plateformes iOS et Android avec un poids de 4 Kb contre 31 Kb pour jQuery
  •  
    Excellent, merci Alexandre pour cette précision. Comptent-ils pousser la compatibilité vers d'autres navigateurs ? En tous cas, combiné avec yepnope (pour le polyfill), ça peut être super pour construire ses dépendances à poids mini.
Oncle Tom

yepnope.js | A Conditional Loader For Your Polyfills! - 5 views

  •  
    Pas pris encore le temps de tester ce nouvel outil mais j'aime bien la philosophie, je suis preneur de vos retours.
  • ...1 more comment...
  •  
    Librairie de chargement asynchrone de fichiers JavaScript. Elle est légère et rapide, facile à prendre en main et volontairement succinte. À tester et comparer face à d'autres solutions plus complètes, telles que RequireJS, head.js, $scriptjs ou encore LabJS. via @DirtyF
  •  
    y'a bien un spécialiste qui va nous pondre un comparatif un de ces quatres, ça commence à faire beaucoup mais c'est bon signe pour la performance, à adapter toujours en fonction du contexte de toute façon.
  •  
    moi en tout cas ça me parle. à faire attention : comme pour d'autres loaders, il faut que le cache soit bien configuré car il fait une requête pour mettre en cache, et une 2nde requête pour exécuter, normalement depuis le cache. Si le cache n'est pas bien configuré (que veux dire "bien" : au moins 10 minutes d'expiration ?), la ressource sera téléchargée deux fois.
anonymous

Simplify.js - a high-performance JavaScript 2D/3D polyline simplification library - 2 views

  •  
    "Simplify.js is a tiny high-performance JavaScript 2D/3D polyline simplification library by Vladimir Agafonkin, extracted from Leaflet, a JS interactive maps library of the same author. It uses a combination of Douglas-Peucker and Radial Distance algorithms. Works both on browser and server platforms."
anonymous

Smart Defaults: On Libraries & Frameworks - TimKadlec.com - 1 views

  •  
    "I've worked on projects where some of the devices we needed to test on couldn't load the page at all if jQuery was present-it was just too much JavaScript for the device to handle."
Éric D.

Ajaxian » Want to pack JS and CSS really well? Convert it to a PNG and unpack... - 3 views

  •  
    Je cherche encore l'intérêt par rapport à un mod_gzip ou mod_deflate
  •  
    Deux recherches plus approfondies sur le sujet : http://www.iamcal.com/png-store/ http://iamcal.github.com/PNGStore/ Au final, entre les problèmes de génération d'images (liés aux librairies), les problèmes d'implémentation des canvas dans les navigateurs, les limitations liées au format d'image et le peu de gain retiré face au mod_gzip, je ne suis pas convaincu que ce sera la révolution de l'année en matière de performance front...
  •  
    C'est franchement de la grosse bidouille, le seul avantage que je vois c'est que ça permet de charger des JS et CSS sans les exécuter, de faire du préchargement en background pour un futur module à afficher, une popin par exemple... Mais il existe déjà des techniques plus simples pour faire ça donc...
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.
1 - 7 of 7
Showing 20 items per page