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
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:
- In majoritatea browserelor recente, combinatia Prototype+Sizzle a obtinut scoruri aproape identice de jQuery (rezultat de asteptat de altfel).
- Selector-engine-ul default in Prototype a iesit castigator in cazul versiunilor “pe cale de disparitie” ale browserelor (Firefox 2, Safari 3) precum si in Opera.
- jQuery se detaseaza clar cand vine vorba de ambele versiuni de Internet Explorer
- Cea mai importanta concluzie: Sizzle aduce un bonus de viteza in browserele ce reprezinta viitorul, precum si in Internet Explorer (chiar daca tot nu se apropie de jQuery), prin urmare eu unul voi apela la aceasta solutie de acum incolo.
PS: voi sterge orice comentariu care se rezuma la “[insert framework name] sucks! Mine is bigger and better.” :)
Related posts:
- Prototype: Carousel – Update
- Prototype: Hotkeys
- Prototype: Zoomer
- Prototype plugin: Showcase
- Prototype plugin: Scroller
Comments
3 Responses to “Sizzle si Prototype”
Leave a Reply

Sunt Victor Stanciu, web developer, si scriu despre dezvoltare, standarde, tehnici si tehnologii. (
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 :)
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.
on March 27th, 2009 16:01
IE8 4065 2967 266