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

Braucht man jQuery denn wirklich?

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: Ihr Partner für die digitale Transformation mit Microsoft Technologien
Blog 23.02.15

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.

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 07.06.17

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: Ihr Partner für die digitale Transformation mit Microsoft Technologien
Blog 12.06.18

Spaltenformatierung in SharePoint: Column formatting vs. JS

Eine Gegenüberstellung der Spaltenformatierung von JSLink zu der neueren Methode Column formating in Office 365.

Blue sky and clouds
Blog 31.01.18

Grundlagen der Datenmodellierung

Fachliches Modell mit ER-Diagrammen (auch ERM – Entity Relationship Model)

Zwei Frauen schauen gemeinsam auf einen Bildschirm
Blog 27.11.18

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: Ihr Partner für die digitale Transformation mit Microsoft Technologien
Referenz

Siemens AG: SharePoint statt Excel bei komplexen Formularen

Zur Verwaltung und Auswertung der Projekt- und Arbeitsstunden nutzte Siemens in der Vergangenheit komplexe Excel Tabellen. Diese Tabellen setzte novaCapta für Siemens in eine einfach zu bedienende, intuitive Anwendung in Microsoft SharePoint um.

Blog 27.05.20

Wieso braucht es Change Management?

Immer häufiger liest man von der Wichtigkeit von Change & Adoption. Doch wieso braucht es das und wie gehe ich das an?

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 30.06.15

Dateizugriffsrechte verwalten mit Microsoft RMS – Teil 1

Diese Artikelserie befasst sich mit der Einrichtung und Verwendung der Rights Management Services (RMS) von Microsoft, die eine sichere Verschlüsselung von Dateien bieten.

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 08.07.15

Dateizugriffsrechte verwalten mit Microsoft RMS – Teil 2

Dieser Teil der Artikelserie befasst sich mit der Anwendung von den Microsoft RMS in der Praxis.

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 17.12.14

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.

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 15.10.19

GraphQL – Die Alternative zu REST

GraphQL ist eine Abfragesprache für APIs zur Ausführung von Abfragen mit Hilfe eines für die Daten definierten Typensystems. In dieser kleinen Blog-Serie schauen wir uns einfache Queries und Mutations an.

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

Nutzung der SharePoint REST API mit Microsoft Flow

Durch Zugriffe über die REST API lassen sich viele Vorgänge mit Microsoft Flow automatisieren.

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 20.12.18

Ich bin im Flow! – Eine Übersicht zu Microsoft Flow

Die Power Platform wird aktuell von Microsoft sehr stark gepusht. Zeit, sich mit dem Potenzial der einzelnen Komponenten zu beschäftigen. Heute: Flow.

Team of programmers working in office
Blog 26.08.21

Was Sie beim nächsten IT-Projekt beachten sollten

Unternehmen sind in ihrer digitalen Transformation erfolgreicher, wenn sie bei der Umsetzung auf ein wirksames Change Management setzen. Wie der Wandel gelingt, verrät Nora Sommer, Senior Business Consultant bei der novaCapta, im Interview.

Zwei Frauen schauen gemeinsam auf einen Bildschirm
Blog 05.07.16

Xamarin – plattformübergreifende App-Entwicklung

Xamarin ist eine übergreifende Entwicklungsplattform, die die Welten zusammenführt und die bislang erforderliche Mehrarbeit weitgehend überflüssig macht.

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

SharePoint und Informationsarchitektur – worauf kommt es an?

Wie definiert sich eine Informationsarchitektur und die Rolle eines Informationsarchitekten im SharePoint-Umfeld?

News der novaCapta
Blog 22.08.18

Zentralisiertes Logging – Simpler Logging-Stack mit Graylog

Logging ist ein komplexes und doch essenzielles Thema. Gute Logs vereinfachen einem Supporter die Arbeit und ermöglichen es, Probleme schneller einzugrenzen.

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 09.05.19

Teams Extensions – Erstellen von Erweiterungen für Teams

Mit der Entwicklung von Extensions kann Teams einfach erweitert werden. Hierfür gibt es das App Studio, welches über den Teams Store installiert werden kann.

Drei Personen in einer Besprechung an einem Tisch besprechen den Zeitplan auf ihrem Microsoft-Laptop
Blog 17.07.19

Die Bedeutung einer Governance

In der Governance-Struktur legen Sie fest, wie Sie mit Ihrer SharePoint-Umgebung arbeiten. Governance beschreibt die Rollen der Nutzer und legt Verantwortlichkeiten fest.

Blue sky and clouds
Blog 28.06.18

Angular Route-Guards

Was versteht man eigentlich unter Angular Route-Guards?