Sizzle si Prototype

Framework-ul JS jQuery foloseste mai nou un selector engine foarte rapid numit Sizzle.

Cum jQuery intotdeauna a stat mai bine la capitolul viteza a selectorilor, inlocuirea selector engine-ului Prototype cu Sizzle ar trebui sa aduca un binevenit boost de performanta.

Urmarind instructiunile din acest articol, este suficient sa incarcam Sizzle (4KB minified si gzipped) si sa adaugam urmatorul cod dupa Prototype:

1
2
3
4
5
6
7
8
9
10
11
//Overwrite findChildElements to use Sizzle http://sizzlejs.com
Selector.findChildElements = function(element, expression){
    expression = expression.join(", ");
    var results = Sizzle(expression, element);
    if(results.length > 0){
        for(var i=0; i < results.length; i++){
            results[i] = Element.extend(results[i]);
        }
    }
    return results;
};

Acum atat $$ cat si Element#select vor folosit Sizzle. Unul din avantajele majore (pe langa viteza mult imbunatatita) este acela ca in afara de schimbarea de mai sus, nu implica nici o alta modificare in codul nostru, fiind deci posibila trecerea la Sizzle in mijlocul procesului de dezvoltare a proiectului.

Teste

SlickSpeed

SlickSpeed Selectors Test

Puteti rula un test comparativ intre Prototype, Prototype cu Sizzle, si jQuery accesand link-ul de mai sus.

Scorurile din imagine reprezinta medii ale rularilor multiple (scorul mai mic e mai bun). Toate au fost rulate sub Windows. Din ele reies cateva concluzii:

PS: voi sterge orice comentariu care se rezuma la “[insert framework name] sucks! Mine is bigger and better.” :)

Related posts:

  1. Prototype: Carousel – Update
  2. Prototype: Hotkeys
  3. Prototype: Zoomer
  4. Prototype plugin: Showcase
  5. Prototype plugin: Scroller

Comments

3 Responses to “Sizzle si Prototype”

  1. Dever
    on March 27th, 2009 15:23

    Banuiesc ca ai rulat testele pe Win … uite ce am obtinut pe Mac:

    Firefox 3.0.7: 245 | 198 | 214
    Safari 3.2.1 : 51 | 33 | 32

    Parallels Win XP:
    IE6: 1843 | 921 | 360
    IE7: 1610 | 764 | 321

    I <3 jQuery :)

  2. Victor Stanciu
    on March 27th, 2009 15:36

    Salut Dever,

    Perfect, si rezultatele tale confirma, sunt aceleasi proportii, si dupa cum ma asteptam deviatia enorma a jQuery de pe Safari 3 pe Windows nu exista pe Mac.

  3. add
    on March 27th, 2009 16:01

    IE8 4065 2967 266

Leave a Reply




  • Arhiva