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.
Eddie Osmani vom Google Chrome-Team schätzte die schnelle Geschwindigkeit und das Laden der neuen Version der WebsiteDas
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.