Mootools si codul de la trafic ro
Mootools este un framework Javascript compact, modular si codat in stil OOP. Este usor de folosit, flexibil (orice care are competentele necesare, poate sa extinda codul), crossbrowser.
Cam asta e descrierea oficiala.
Are un sistem interesant de plug-in-uri si extensii, bazate pe moo.fx
Un exemplu privind utilizarea mootools, ar fi slimbox echivalentul pentru lightbox 2, dar portat cu mootools. Diferenta notabila este faptul ca slimbox poate ocupa sub 10kb, avand aceleasi functionalitati cu lightbox2 (care are: prototype si scriptaculous).
Cam asta ar fi in mare despre mootools, acum problema: un site in care se foloseste mootools si are in el si codul de la trafic.
Codul de la trafic.ro optimizat din punct de vedere al dimensiunii cu un tool, care inlocuieste numele variabilelor cu $A/B/C…Z, ex
function trfc...(){$A=window;$B=$A.location; ...
, intra in conflict cu functia din mootools:
function $A(array){
return Array.prototype.copy.call(array);
};
Problema a fost detectata destul de greu, pentru ca nu da nici o eroare de javascript, ci doar se observa ca galeria de imagini, sau alta bucata de cod, nu mai functioneaza. Stai si fa debugging (traiasca firebug) si ia codul la mana bucata cu bucata si vezi ca pe serverul de test merge, pe productie nu.
Si atunci intervine un principiu al mediului de testare: conditiile pentru testare trebuie sa fie identice sau cat mai aproape de cele de productie. In cazul in care eroarea apare, iar comportamentul componentelor este corect, eroarea e cauzata de diferentele dintre cele doua medii (ar trebui sa fie o teorema pe tema asta).
Am trimis o sesizare catre trafic, in care mentionam ca acel cod poate intra in conflict atat cu aceasta librarie cat si cu prototype, care a adoptat acelasi sistem de identificatori (cu acel $ in fata), iar din ce in ce mai multe site-uri folosesc aceste frameworkuri. Sa speram ca o sa trimita macar un raspuns.
No related posts.
din experienta ta, apare vreo problema daca folosesc mootools si scriptaculous impreuna ? intra in conflict un cu cealalta ?
Avand in vedere ca au implementari similare (vezi functia $), default rezulta probleme…
vezi pe google solutii…