bealzebub
Legacy Member
TheBud zei:Ik snap hier niet goed wat je bedoelt. Browser compatibiliteit heeft niks met logica te maken, gaat over DOM functies (Of andere functies) en CSS effectjes die niet werken.
OK, laat me het even met een analogie voorstellen: IE8 en zelfs IE9 zijn zoals het autootje in deze golden oldie op youtube: https://www.youtube.com/watch?v=AyXgMal3C1U
De caravan is een iets of wat complexe clientside app. Om gewoon naar de bakker om de hoek te rijden (bv. een slideshow op een simpele website, een paar kleine animatietjes hier en daar) is da autootje best geschikt, t rijdt toch é.
Sommige van onze webapps zijn dus van die caravans, die we dan nog speciaal zo licht mogelijk maken om performant te blijven (en de caravan dus nie volladen met voedsel, kleren, campeermateriaal, etc. door er een zware library bovenop te gooien, maar bijna gans de binnenkant leeghalen, pure optimized Javascript dus). Chrome met z'n V8 motor (hehehe, t past nog ook) trekt dat zonder enige moeite den berg op, IE8 (en zelfs IE9) kunnen het gewoon nie aan. Dit gezegd zijnde is het tegenwoordig beter in de meest recente versies (en t is ook waar men op gefocust heeft).
We spreken over een DOM performance (append, prepend, insert, replace) die tussen 10 x (Firefox) en 45 x trager (Chrome) is en dat is met de versies rond dezelfde tijd van IE8, dus nog niet de meest recente iteraties. Als leuk extraatje moet je ook nog weten dat IE8 langs alle kanten geheugen lekt en dus op termijn voor crashes zorgt. Voor veel higher level frameworks moet de ontwikkelaar echt rekening houden met hoe browsers intern werken: hun Javascript engine, de layout renderer (en wanneer styles zullen herberekend worden) en zo bv. toevlucht nemen tot het offscreen uittekenen van de DOM tree om die pas zo laat mogelijk in de zichtbare DOM tree te gaan mergen. Het gaat hem dus niet zomaar om een andere functiebenaming. Als je in oudere versies van jQuery gaat bekijken wat er effectief gedaan wordt voor browser compatibiliteit (en hoe lelijk dat soms is), dan is dat helemaal anders dan het blindelings gebruiken van jQuery als eindgebruiker en erop vertrouwen dat "jQuery het wel allemaal voor jou fixt".
Wat heeft dat met logica en een deftige testsuite te maken? Een deel van de testsuite deed expliciet van die langlopende interacties met de clientside logic om te kijken of daar niets fout loopt op termijn. Chrome, geen probleem, Firefox, geen probleem, Safari, geen probleem, IE8, slow as hell. En wie mij een beetje volgt op dit forum weet da k nie zomaar wa uit m'n nek klets

T is trouwens nog altijd één van de meest pertinente problemen bij clientside MV(C) frameworks zoals EmberJS en Angular (of ze hebben het probleem opgelost door IE8 support te laten vallen).