novaCapta: Ihr Partner für die digitale Transformation mit Microsoft Technologien

Braucht man jQuery denn wirklich?

Datum

19.08.2016

Dieser Beitrag wurde verfasst von:

Andy Kurz

Keine Frage, jQuery erleichtert uns Entwicklern das Leben ungemein. Doch trotzdem stellt sich immer wieder die Frage, ob jQuery wirklich immer benötigt wird oder man nicht doch mit nativem JavaScript besser beraten ist. Denn in den meisten Fällen geht es doch um Klassenhandling bzw. DOM-Manipulationen. Außerdem dürfen in der heutigen Zeit auf keinen Fall die mobilen Endgeräte außer Acht gelassen werden! Und besonders dort ist es wichtig, jedes Kilobyte zu sparen, damit die Seite auch bei schlechter Verbindung schnell geladen werden kann.

Klar kann man jetzt sagen, dass jQuery sämtliche Browser unterstützt und man keine aufwendigen Workarounds entwickeln muss, um zum Beispiel eine bestimmte Version des Internet Explorers nutzen zu können. Doch wir befinden uns mittlerweile im Jahre 2016, wo nicht mehr Browser wie IE 7 oder IE 8 unterstützt werden müssen. Moderne Browser bieten alle Funktionen, die gewöhnlich benötigt werden.

Mit Hilfe dieser Funktionen lassen sich auch sehr einfach die gewünschten Methoden von jQuery nachbauen.  Einziger Nachteil ist, dass diese Funktionen zuerst implementiert werden müssen, doch beim Aufruf an sich sind die beiden Methoden identisch. Außerdem müssen die Methoden nur einmal entwickelt werden und lassen sich dann beliebig oft in weiteren Projekten verwenden.

Wie man in den folgenden Beispielen sieht, ist es nicht wirklich mehr zu schreiben, da die Methoden aus bestehen Projekten genommen werden können und die Methoden ähnlich aufgefunden werden. Dafür konnte man sich eine fast 100kB große Library sparen, die eine ganze Reihe an Methoden mit sich bringt, die in den meisten Fällen nicht von Nöten sind.

Beispiele​​

(function(win, doc) {
    // getElem function
    var getElem = function(selector){
        return doc.querySelectorAll(selector);
    };
 
    // has class function
    var hasClass = function (el, val) {
        return el !== null && el.classList.contains(val);
    };
 
    // add class function
    var addClass = function (el, val) {
        if (el === null) {
            return null;
        }
        return el.classList.add(val);
    };
 
    // remove class function
    var removeClass = function (el, val) {
        if (el === null) {
            return null;
        }
        return el.classList.remove(val);
    };
 
    // javascript
    var elem = getElem('CSS-Selector');
    addClass(elem, 'css-klasse');
    addClass(elem, 'css-klasse');
 
    // jquery
    var elem = $('CSS-Selector');
    elem.addClass('css-klasse');
    elem.removeClass('css-klasse');
 
} (window, document));

Performance

Im folgenden Beispiel wird der Unterschied zwischen JavaScript und jQuery sichtbar.

(function(win, doc) {
    // performance testing function
    var performanceTest = function (func, funcDesc) {
         
        var start = new Date().getTime();
        for (i = 0; i < 20000; ++i) {
            func.apply();
        }
        var end = new Date().getTime(),
            time = end - start;
       console.log(funcDesc + ': ' + time);
    };
 
    var demoArray = document.querySelectorAll('div');
    // jQuery each
    var jqueryEach = function () {
        $.each(demoArray, function (index, elem) {
            $(this).attr('data-count', i);
        });
    };
    // javascript each
    var javaScriptEach = function () {
        for (var i = 0, len = demoArray.length; i < len; i++) {
            demoArray[i].setAttribute('data-count', i);
        }
    }
    // Aufruf
    performanceTest(javaScriptEach, 'javaScript')
    performanceTest(jqueryEach, 'jquery')
 
} (window, document));

Fazit

Man sollte sich immer die Frage stellen:

„Brauche ich diese Library wirklich oder kann ich es auch mit nativem JavaScript schreiben?“

In vielen Fällen kann man die Frage mit „nein“ beantworten und damit können oft Dateien, Ladezeiten und Versionsprobleme umgangen werden. Ebenso ist der Performance-Gewinn unserer Applikation deutlich höher, was aber nicht heißen soll, dass Libraries wie jQuery, AngularJS, Backbone etc. keine Berechtigung haben, in einigen Fällen machen sie durchaus Sinn und sind eine nützliche Unterstützung.

novaCapta
Andy KurzBlog
novaCapta: Ihr Partner für die digitale Transformation mit Microsoft Technologien
Blog

Warum ist Inline-CSS und JavaScript-Code so schlecht?

Warum der Einsatz von Inline-CSS bzw. JavaScript-Code schlecht ist, da Dinge wie Caching, DRY-Prinzip, Wartbarkeit und Media-Queries gänzlich außer Acht gelassen werden.

novaCapta
Blog
Erstellung einer Mitarbeiter-App
Blog

Wer benötigt ein Intranet?

Welche Unternehmen brauchen ein Intranet und warum benötigen sie es? Um diese Frage sinnvoll zu beantworten, lohnt es sich, die Bedeutung und Funktionen eines Intranets zu verstehen.

novaCapta
Blog
Hands of man using online virtual app on mobile phone. Millennial guy chatting on smartphone, using banking services, reading text message, typing, shopping, making call, browsing internet. Close up
Blog

Handlebars.js – Semantische Template Library

Handlebars.js ist eine Template-Engine für JavaScript. Sie ermöglicht dem Entwickler, mit Hilfe von semantischen Templates Business-Logik und HTML zu trennen.

novaCapta
Blog
Hands of man using online virtual app on mobile phone. Millennial guy chatting on smartphone, using banking services, reading text message, typing, shopping, making call, browsing internet. Close up
Blog

Multi Factor Authentication (Azure und SharePoint)

Microsoft führt mit der Multi Faktor Authentisierung (MFA) eine weitere und kostenlose Authentifizierungsebene zu in Office 365 hinzu.

novaCapta
Blog
Detailaufnahme eines Fingers, dessen Fingerabdruck zur Identifizierung am Laptop genutzt wird. Daben sieht man ein Sicherheitsschloss.
Blog

NIS2 kommt: So bereiten Sie sich optimal vor

NIS2 kommt. Wie bereiten Unternehmen sich optimal vor? In unserem Blogbeitrag inkl. Video geben unsere Experten konkrete Tipps - und zeigen, welche Vorteile es hat, die Maßnahmen umzusetzen!

novaCapta
Offering
Work partners sitting in office surfing phone in company
Offering

NIS2 Compliance Navigator

Die neue NIS2 Richtlinie für Cybersicherheit verstehen und Möglichkeiten zur Umsetzung der Anforderungen mit Microsoft Technologien kennenlernen​ - mit unserem kostenlosen Angebot!

novaCapta
Blog
Anwendungsbeispiel Power Platform Power App Workplace Booking
Blog

Power App für das hybride Büro

novaCapta berät nicht nur ihre Kunden zur Power Plattform, sondern nutzt die low-code/no-code Plattform auch für eigene Zwecke. Zum Beispiel um den Arbeitsalltag der Kolleg*innen zu vereinfachen und eine moderne Arbeitsumgebung zu schaffen.

novaCapta
Unternehmen
novaCapta: Ihr Partner für die digitale Transformation mit Microsoft Technologien
Unternehmen

Was uns ausmacht – Wer wir sind – Warum du uns fehlst

Bei der novaCapta GmbH gestalten rund 260 kreative Köpfe seit vielen Jahren überzeugende Lösungen für den Digital Workplace. Denn unsere Mitarbeitenden sind Expert:innen für Intranets, Kollaborationsportale, Business-Intelligence-Lösungen, Individualanwendungen und vieles mehr. Unsere Dienstleistungspalette auf Basis von Microsoft Teams & SharePoint, Office 365 / Microsoft 365, Azure and Power BI geht über den üblichen IT-Lifecycle hinaus: in Projekten fließen kompetente Beratung, Kreativität und Technik ergänzend zusammen.

novaCapta
Unternehmen
novaCapta: Ihr Partner für die digitale Transformation mit Microsoft Technologien
Unternehmen

Einstieg und Weiterentwicklung

Hier findet sich die passende Stelle mit dem passenden Einstiegslevel für jede:n. Und auch Ausbildung wird bei uns großgeschrieben: Die TIMETOACT GROUP engagiert sich bereits seit 2001 in der Berufsausbildung in kaufmännischen und IT-Berufen und bietet nicht nur Berufseinsteiger:innen vielfältige Möglichkeiten bei berufsbegleitenden Studiengängen und Fortbildungen.

novaCapta
Leistung
Cheerful business colleagues watching a presentation on a laptop
Leistung

Prozessoptimierung: Microsoft Business Applications

Die Digitalisierung Ihrer Unternehmensprozesse mittels Low-Code-/No-Code-Lösungen hilft bei der Reduzierung von Komplexität und der Visualisierung Ihrer Ergebnisse – in der heutigen Datenflut unerlässlich. Wir helfen bei der Prozessoptimierung mit Microsoft Business Applications.

novaCapta
Leistung
Microsoft 365 Panel der novaCapta
Leistung

Migration von Confluence zu SharePoint

Atlassian Confluence und Microsoft SharePoint teilen viele Gemeinsamkeiten. Trotzdem kann es gute Gründe geben, um von Confluence auf SharePoint umzusteigen. Mit unserem novaCapta Migration Tooling lassen sich Dateien, Spaces, Chats etc. größtenteils automatisiert in Ihre Microsoft 365 Landschaft migrieren.

novaCapta
Michael SonntagBlog
Zwei Frauen schauen gemeinsam auf einen Bildschirm
Blog

Tipps und Tricks mit Entity Framework

In diesem Blogbeitrag möchte ich einige Tipps und Tricks rund um Entity Framework mit euch teilen. In allen Beispielen gehen wir vom Code-First Ansatz aus.

novaCapta
Referenz
Messeszene des Ledvance Messestands
Referenz

Ledvance: Effiziente Steuerung von SharePoint-Migrationen

Ledvance zieht mit seinen Daten in die hybride Welt: Die Konsolidierung der Daten, weniger Infrastrukturkosten und eine breitere Nutzung des Office 365-Paketes waren die treibenden Faktoren. Da einige der Daten jedoch nicht in der Cloud gespeichert werden konnten, fiel die Entscheidung auf eine hybride Lösung. Das Mammutprojekt ging dank der erweiterten Funktionen des novaCapta Migration Managers leise und geräuschlos über die Bühne.