Github.com weigert sich, jQuery zu verwenden und wechselt zu reinem JavaScript

Mislav Marohnić gab heute bekannt, dass die Github-Entwickler jQuery am Frontend von GitHub.com losgeworden sind. Es scheint, dass an dieser Tatsache nichts Bemerkenswertes ist, wenn nicht für einen interessanten Punkt.

Das Problem der Auswahl eines neuen Frameworks für das Frontend wurde radikal gelöst - es wurde beschlossen, grundsätzlich auf Frameworks zu verzichten. Stattdessen wurden die folgenden Tools verwendet:

  • querySelectorAll (das angeblich einmal von jQuery inspiriert war),
  • holen für die Arbeit mit AJAX,
  • delegierte Ereignisse zur Behandlung von Ereignissen,
  • Polyfills für die Arbeit mit dem DOM,
  • benutzerdefinierte Elemente, die auf dem Vormarsch sind.

Zusätzlich zu benutzerdefinierten Elementen wurde beschlossen, nichts anderes von Webkomponenten zu verwenden . Die Entwickler haben sich das Shadow DOM genau angesehen und es würde ihnen nichts ausmachen, darauf zurückzugreifen. Aufgrund der Tatsache, dass die Suchgeschwindigkeit im DOM für Polyfills sehr zu wünschen übrig lässt, mussten sie dieses Vorhaben vorerst verschieben.

Warum mussten Entwickler das alles grundsätzlich tun? Um den Besuchern weniger Kilobyte zu geben, sollten sie eine explizitere Syntax verwenden, um Manipulationen mit dem DOM durchzuführen, und um die Flow.JS-Bibliothek für die statische Typanalyse verwenden zu können. Laut den Entwicklern hat der jQuery-Exit-Prozess Jahre gedauert.

Bild

Eddie Osmani vom Google Chrome-Team schätzte die schnelle Geschwindigkeit und das Laden der neuen Version der Website

Das jquery-pjax-Plugin wurde durch Vanilla pjax ersetzt , das speziell auf Github zugeschnitten ist, Verbesserungen aufweist und eng mit der Codebasis zusammenhängt. Leider ist es unwahrscheinlich, dass der Code der von Github verwendeten Version der Bibliothek geöffnet ist, da es in Zukunft schwierig ist, ihn zu unterstützen.

Übrigens stellt Github viele seiner Webkomponenten in Open Source - Sie können sie als Referenz sehen , in Zukunft wird die Liste erweitert. Für Browser ohne native Abrufunterstützung hat Github eine eigene Polyfüllung geschrieben . Zum Delegieren von Ereignissen wird die Bibliothek für delegierte Ereignisse verwendet. Beide Bibliotheken sind unter der MIT-Lizenz verfügbar.

Source: https://habr.com/ru/post/de418257/


All Articles