molily: Zur Info: jQuery 2.0 veröffentlicht

http://blog.jquery.com/2013/04/18/jquery-2-0-released/

»This version leaves behind the older Internet Explorer 6, 7, and 8 browsers«

Auch noch interessant:
»A new minimal selector engine, basically a thin wrapper around the browser’s querySelectorAll API, lets you shrink the build to less than 10KB when minified and gzipped.«

Grüße,
Mathias

  1. Moin Mathias,

    danke für die Info. Da du anscheinend tiefer in der Materie bist als ich, kannst du vielleicht in ganz ganz kurzen Stichpunkten zusammenschreiben wieso sich ein umstieg auf 1.x auf 2.0 lohnen würde?

    Wäre echt super nett und cool von dir.

    Gruß
    der Dino, der Mathias verträumt anguckt
    T-Rex

    1. Moin

      [...] wieso sich ein umstieg auf 1.x auf 2.0 lohnen würde?

      Mit dem initial Release fällt erstmal nur die Unterstützung von IEs < 9 raus. Viel größer ist der Unterschied zur 1.9.1 erstmal nicht. Daraus ergibt sich aber immerhin schon eine Einsparung von ca. 10kb.

      http://blog.jquery.com/2013/04/18/jquery-2-0-released/

      Gruß
      Ole

      1. Mit dem initial Release fällt erstmal nur die Unterstützung von IEs < 9 raus. Viel größer ist der Unterschied zur 1.9.1 erstmal nicht. Daraus ergibt sich aber immerhin schon eine Einsparung von ca. 10kb.

        Das liegt vor allem daran, dass die ganze Abstraktion für querySelectorAll() fehlt und nur noch die Spielerein dazugebaut werden, die in CSS (noch) gar nicht möglich sind, z.B. komplexere selektoren innerhalb von :not() oder aber sizzle-spezifische Erweiterungen wie :eq() oder :has()

        1. Daraus ergibt sich aber immerhin schon eine Einsparung von ca. 10kb.

          Das liegt vor allem daran, dass die ganze Abstraktion für querySelectorAll() fehlt

          Nein, jQuery 2.0 enthält immer noch Sizzle. Man kann aber einen Custom-Build erstellen ohne Sizzle: »When this module is excluded, it is replaced by a rudimentary selector engine based on the browser's querySelectorAll method that does not support jQuery selector extensions or enhanced semantics. See the selector-native.js file for details.«

          querySelectorAll ist nach wie vor kaputt, u.a. was Queries ausgehend von einem Element tief im DOM betrifft. Ob diese experimentelle Engine das berücksichtigt, weiß ich nicht.

          Grüße,
          Mathias

          1. Daraus ergibt sich aber immerhin schon eine Einsparung von ca. 10kb.

            Das liegt vor allem daran, dass die ganze Abstraktion für querySelectorAll() fehlt

            Nein, jQuery 2.0 enthält immer noch Sizzle. Man kann aber einen Custom-Build erstellen ohne Sizzle: »When this module is excluded, it is replaced by a rudimentary selector engine based on the browser's querySelectorAll method that does not support jQuery selector extensions or enhanced semantics. See the selector-native.js file for details.«

            Urpsprünglich war das doch der Plan? Was genau haben die jetzt entfernt?

            1. Urpsprünglich war das doch der Plan?

              Nicht dass ich wüsste. Vielleicht langfristig. Momentan kann nur Sizzle alle bisherigen Features bieten. Sonst wäre jQuery 2.0 vom Funktionsumfang geringer als 1.9.x – das ist jetzt nicht der Fall. Die neue QSA-Implementierung scheint mir noch sehr rudimentär zu sein.

              Was genau haben die jetzt entfernt?

              Die spezifischen Hacks für IE 6/7/8, sonst nichts. 2.x und 1.9.x sind API-kompatibel, auch was CSS-Selektoren angeht.

              Grüße,
              Mathias

    2. Moin Mathias,

      danke für die Info. Da du anscheinend tiefer in der Materie bist als ich, kannst du vielleicht in ganz ganz kurzen Stichpunkten zusammenschreiben wieso sich ein umstieg auf 1.x auf 2.0 lohnen würde?

      Das ist einfach:
      Wenn du keinen Support für IE6, 7 oder 8 benötigst (Das gilt auch für den IE9 im Kompatiblitätsmodus) kannst du 2.x verwenden, ansonsten bleib im 1.x-Zweig.

      Ein Grund hier dafür könnte sein, dass du z.B. nur Smartphones und Tablets bedienst, auf denen es sowieso keinen dieser Browser gibt.

      1. @@suit:

        nuqneH

        Wenn du keinen Support für IE6, 7 oder 8 benötigst (Das gilt auch für den IE9 im Kompatiblitätsmodus) kannst du 2.x verwenden, ansonsten bleib im 1.x-Zweig.

        War nicht die Idee, den IE<9-Kram in ein Modul auszulagern? Gibt es ein solches Modul, das man per conditional comment dazuladen kann?

        Qapla'

        --
        „Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)
        1. War nicht die Idee, den IE<9-Kram in ein Modul auszulagern? Gibt es ein solches Modul, das man per conditional comment dazuladen kann?

          Nein, man soll einfach per Conditional Comment 1.9.x laden.

          2.x, 1.9.x sowie ein Plugin zu pflegen, was 2.x wieder unter oldIE lauffähig macht, wäre zuviel Aufwand. Außerdem wäre der Code von 2.x plus oldIE-Modul wahrscheinlich größer als 1.9.x, weil viele Funktionen wieder überschrieben werden müssten.

          Mathias

  2. Moin,

    »A new minimal selector engine, basically a thin wrapper around the browser’s querySelectorAll API, lets you shrink the build to less than 10KB when minified and gzipped.«

    das ist sehr gut. Jetzt braucht man nur noch ein Skript, welches die querySelectorAll-API auf ätere Browser abbildet.

    1. das ist sehr gut. Jetzt braucht man nur noch ein Skript, welches die querySelectorAll-API auf ätere Browser abbildet.

      Nein, außerdem klingt das nach Zweckentfremdung: Erst bewusst auf Unterstützung von oldIE verzichten, nur um dann doch wieder nachzurüsten?

    2. Hallo,

      »A new minimal selector engine, basically a thin wrapper around the browser’s querySelectorAll API, lets you shrink the build to less than 10KB when minified and gzipped.«

      das ist sehr gut. Jetzt braucht man nur noch ein Skript, welches die querySelectorAll-API auf ätere Browser abbildet.

      Vielleicht hätte ich das nicht zititieren sollen, es wird anscheinend missverstanden. Der zweite Teil des Satzes ist wichtig.

      jQuery 2.0 umfasst weiterhin Sizzle, eine vollwertige, abwärtskompatible Selektor-Engine mit vielen Zusätzen, die QSA in neueren Browser verwendet. Das Sizzle in jQuery 2.0 ist gegenüber 1.9.x nur eine neuere Version (1.9.2-pre), die immer noch Fixes für oldIE enthält, selbst wenn der Rest von jQuery 2.0 oldIE nicht unterstützt.

      Man kann nun aus dem Quellcode einen angepassten Build erzeugen, in dem man Sizzle deaktiviert und o.g. minimale Engine aktiviert.

      Die Idee dahinter ist, mit Zepto aufzuschließen, welches ebenfalls nur QSA verwendet und sich daher nur für spezielle Umgebungen eignet (Mobil- und App-Umgebungen, siehe die Liste im Abschnitt »How to use it« in den Release Notes).

      Mathias