JavaScript is een van de grote drie van web hosting: Naast HTML (paginastructuur) en CSS (presentatie), de objectgeoriënteerde programmeertaal biedt dynamisering van de inhoud. Maar JavaScript is niet alleen toepasbaar in de context van pagina-ontwerp. Server-side toepassingen kunnen ook worden bestuurd met JavaScript.
Oorsprong van JavaScript
Ondanks de naam heeft JavaScript weinig te maken met Java. Oorspronkelijk zou de scripttaal LiveScript gaan heten en werd zij door Netscape ontwikkeld voor de interactie van de Netscape Navigator met Java applets (Java client applications). Aangezien JavaScript eigenlijk propriëtaire software is, vormde het een concurrentiefactor voor bedrijven als Microsoft Dar. Deze reageerden op de ontwikkeling van JavaScript met hun eigen oplossingen zoals de scripttaal JScript. Na verloop van tijd werd JavaScript echter de primaire scripttaal voor client-side en (naast php) dynamisering aan de serverzijde.
Dynamisering aan de klantzijde
Waarschijnlijk de meest gebruikte functie van JavaScript is de mogelijkheid van client-side dynamisering. De client is de webbrowser. Dynamisering aan de klantzijde betekent dat de inhoud die in de client wordt weergegeven, wordt gemanipuleerd. HTML is de statische beschrijving van de structuur van een web presence, het zogenaamde Document Object Model (DOM). Terwijl CSS (Cascading Style Sheets) wordt gebruikt voor het aparte ontwerp van dit "skelet", biedt JavaScript de mogelijkheid om HTML-elementen te verplaatsen, te verwijderen of toe te voegen.
Deze DOM-manipulatie (DOM-scripting) kan op vele manieren worden gebruikt. Via zogenaamde event handlers zijn functies eerst gebonden aan bepaalde gebeurtenissen. Dit kan zijn klikken door de gebruiker, punten in de tijd of het laden van de website. Met behulp van de ID's die aan elementen in HTML zijn toegewezen, kunnen vervolgens wijzigingen op basis van gebeurtenissen worden getriggerd. Dit kan alles omvatten van het programmeren van eenvoudige, dynamische formulieren of tafelfilters tot het inbedden van videospelers of complexe, dynamische graphics.
JQuery: Hoe ongecompliceerder JavaScript
JavaScript is een voorbeeld van objectgeoriënteerde programmeertalen. De instapdrempel voor onervaren webdesigners is dus relatief hoog. Zonder de functionaliteit van JavaScript (sterk) te beperken, biedt de JavaScript-bibliotheek JQuery een vereenvoudigde syntaxis waarmee de meest voorkomende use-cases snel en eenvoudig kunnen worden gemaakt. Terwijl JavaScript dezelfde complexiteit en veranderlijkheid biedt als Java of Python door het definiëren van prototypes (in plaats van klassen), instanties (concrete objecten) en methoden (functies die aan objecten gebonden zijn), beperkt JQuery de woordenschat en structuren. De commando's hebben een nestbare structuur zodat de structuur vrij snel kan worden begrepen. Daarom, tenzij u te maken heeft met complexe, ongewone toepassingen, is er waarschijnlijk een eenvoudige oplossing in JQuery.
Server-zijde dynamisering: AJAX en Node.js
Naast DOM-manipulatie wordt JavaScript ook gebruikt voor communicatie met servers, zoals databasevragen. Sinds 2009 is er node.js, een framework voor server-side dynamisering met JavaScript. Dit was al mogelijk vóór 2009, maar node.js maakt een eenvoudigere integratie mogelijk. Dit is een voordeel voor JavaScript-programmeurs, omdat ze dan geen andere talen zoals php meer hoeven te gebruiken. Daarnaast maakt node.js ook de parallellisatie van processen mogelijk. Dit is een voordeel, omdat te veel van deze zogenaamde draden tot stilstand kunnen leiden. Bij node.js lopen de aanvragen door een enkele draad, wat de prestaties aanzienlijk kan verhogen.
Node.js is een voorbeeld voor de mogelijkheden van AJAX. Het acroniem staat voor een procedure die Asynchroon JavaScript en XML heet. Dit principe maakt het mogelijk om content van servers op te halen zonder de hele pagina opnieuw te hoeven laden. Voor veel websites zoals YouTube zou een volledige herlading na een videoverzoek of het laden van commentaar een groot nadeel zijn. AJAX is ook een oplossing voor het probleem van de accumulatie van verzoeken dankzij de asynchrone verwerking zoals hierboven uitgelegd voor Node.js.
Integratie van JavaScript
De basisintegratie van JavaScript in het webaanbod werkt precies hetzelfde als de verbinding met CSS-bestanden. Er zijn dus twee mogelijkheden: Enerzijds kan JavaScript gebruikt worden in het hoofd of in de body van het HTML-document.