Aloha ;)
Stimmt nicht. Methodenaufruf vs. Attributzugriff ist eine Frage der Performance, also sehr wohl für den Entwickler relevant.
Nein. Dass diese Mikrooptimierung kaum sinnvoll ist, hat du selbst schon gesagt.
Nein, das habe ich nicht gesagt. Ich habe gesagt, dass sie an dieser Stelle kaum sinnvoll ist. Es gibt durchaus Probleme, bei denen solche Mikrooptimierung sinnvoll ist.
Und wenn sie es wäre, dürfte man an gar keiner Stelle jQuery einsetzen.
Natürlich nicht.
Dagegen ist das "verschiedene Konzepte gemischt zu verwenden" nur dann schädlich, wenn man sich mit seinem Handwerkszeug (noch) nicht auskennt.
Ich würde eher denken, dass wenn man sich mit seinem Handwerkszeug auskennt, man nicht verschiedene Konzepte (für dasselbe) gemischt verwenden wird.
Doch, wenn es dafür Gründe gibt. Mikrooptimierung kann einer sein (allerdings bitte nicht in hochabstrahierten Web-Programmier-Skriptsprachen), es gibt aber auch andere denkbare Gründe.
nana, jetzt schießt du aber übers Ziel hinaus.
??
Meiner Meinung nach hat der Fall (vielleicht bis aufs Einblenden der Checkboxen, das ist mMn aber nichtmal wirklich wichtig) absolut nichts mit progressive enhancement zu tun und ich habe ein bissl den Eindruck, wie wenn du versuchst diesen anders gelagerten Fall mit einem allgemein akzeptierten Schlagwort zu matchen (kann aber auch falsch liegen, siehe unten).
Auch mit der entsprechenden jQuery-Methode stellt das ganze progressive enhancement dar
Ja. (Die Checkboxen für alle an-/abwählen dürften auch bei Verwendung von jQuery nur dann angezeigt werden, wenn JavaScript ausgeführt wird.)
Also warum bringst du das Gespräch dann überhaupt auf progressive enhancement, wenn das Prinzip bei keiner der beiden Methoden missachtet wird?
Also: Erklär mir mal, inwiefern progressive enhancement via Vanilla-JavaScript besser ist, als progressive enhancement via jQuery, das auch in veralteteren (<- Unwort) Browsern die "enhancete" Funktionalität zur Verfügung stellt.
Hab ich hier nicht behauptet.
Deine Aussage zu progressive enhancement liest sich allerdings so. Das kann allerdings auch eine Fehlinterpretation meinerseits sein, in dem Fall ziehe ich das zurück.
Rekapitulieren wir:
Das geht in allen UA, die diese Methode [
querySelectorAll()
] anbieten.Also in allen relevanten.
Allerdings wisst ihr Beide nicht, ob legacy-support in diesem Fall wichtig ist oder nicht
Es ist 2016 und das Prinzip von progressive enhancement hat sich immer noch nicht herumgesprochen. :-(
Ich interpretiere mal anders: Ging es dir lediglich um den Begriff legacy-support? Natürlich ist progressive enhancement geboten, das ändert aber nichts daran, dass man im Zweifelsfall und bei manchen Projekten (siehe "in diesem Fall") auch veraltete Browser mit voller Funktionalität versorgen möchte, statt nur mit Basisfunktionalität. Das ist, was ich unter legacy-support verstehe. Ich verstehe insbesondere nicht darunter, dass ohne legacy-support veraltete Browser nicht mit Basisfunktionalität unterstützt werden. Vielleicht war das ja eine Unklarheit, die mit zu deiner Aussage, meiner Verwirrung darüber und vielleicht auch meiner Fehleinschätzung ("allgemein anerkanntes Schlagwort") geführt hat.
Mein Argument war in diesem Thread nicht, auf jQuery zu verzichten, sondern wenn man jQuery einsetzt, dann konsequent.
Das habe ich herausgelesen, mir fehlt aber nach wie vor die sinnvolle Begründung dafür, warum das wichtig wäre.
Du hast grad argumentiert, dass es sinnvoll ist, veralteten Browser nicht die volle Funktionalität zur Verfügung zu stellen, wenn man die freie Wahl hat das zu tun oder zu lassen :P
Ich kram dann mal erneut Jeremy Keith raus: „Es ist ein verbreiteter Irrglaube, dass progressive enhancement heißt, seine Zeit in alte Browser zu stecken – das Gegenteil ist der Fall. Die Grundfunktionalität zu erstellen dauert nicht allzu lange. Wenn man das getan hat, kann man seine Zeit damit verbringen, mit den neusten und großartigsten Browsertechnologien zu experimentieren; sicher in dem Wissen, dass selbst wenn diese noch nicht weitgehend unterstützt werden, man den Fallback ja bereits hat.“
Dieses Zitat hat inhaltlich nichts mit dem zu tun, was ich geschrieben hatte.
Inwieweit man also Entwicklungszeit da reinstecken möchte, die Checkboxen für alle an-/abwählen auch in IE < 9 zur Verfügung zu stellen, wäre zu überlegen. Vermutlich lohnt der Gedanke nicht.
Ich weiß ja, dass du gerne pauschale Aussagen triffst, ich betone aber nochmal (auch wenn ich das schonmal deutlich geschrieben hatte): In einzelnen Projekten kann das volle Unterstützen veralteter Browser (ja, auch IE 8) durchaus zu Anforderungen und Rahmenbedingungen gehören. Und das kann dann schon durchaus auch ein Argument für die Verwendung von jQuery sein.
Die erweiterte Funktionalität auch in steinalten Browsern anzubieten wäre hier wohl kein Argument für den Einsatz von jQuery.
Doch, nämlich genau dann, wenn das zu den Anforderungen gehört. Und ob es das tut oder nicht ist reine Spekulation; meine Aussage war ausschließlich, dass das so sein könnte - ich sehe keinen Grund, dem zu widersprechen.
Progressive Enhancement ist der Weg, Funktionierendes nicht kaputtzumachen und für veraltete Browser Basisfunktionalität zur Verfügung zu stellen oder zumindest nicht zu verbauen.
So gesagt ist das falsch. (Reihenfolge)
Progressive Enhancement ist der Weg, für alle Browser Basisfunktionalität zur Verfügung zu stellen und diese nicht kaputtzumachen.
Okay, akzeptiert. Wir wissen beide was gemeint ist.
Das ist besser, als veraltete Browser grundsätzlich auszuschließen (was mit jQuery ja gerade nicht passiert, und in diesem Fall sowieso nie im Raum stand)
Was du hier meinst, ist graceful degredation.
Den Namen hat es nur verdient, wenn man es richtig macht. Ansonsten nennt man es auch Murks. Ich hatte eher Murks im Sinn, auf graceful degradation passt die Aussage aber auch, ja.
aber sicher schlechter als ein Tool (jQuery) zu benutzen, was auch veralteten Browsern volle Funktionalität zur Verfügung stellt.
Nein, s.o.
Doch, in zwei Fällen:
- Wenn das für das konkrete Projekt den Anforderungen entspricht (was wir im vorliegenden Fall nicht wissen) oder
- Wenn es keinen zusätzlichen Aufwand kostet (was im vorliegenden Fall so ist, der TO will so oder so jQuery verwenden, und bei jQuery ist legacy-Browsersupport inklusive).
Da letzterer hier vorliegt ist reines progressive enhancement schlechter als die Verwendung von jQuery, das Browsersupport sicherstellt und dabei, wie im vorliegenden Fall, keine Basisfunktionalität kaputtmacht (also auch progressive enhancement umsetzt).
Grüße,
RIDER