JavaScript är en av de tre stora utmaningarna inom webbhotell: förutom HTML (sidstruktur) och CSS (presentation), det objektorienterade programmeringsspråket erbjuder dynamisering av innehållet. Men JavaScript kan inte bara användas i samband med siddesign. Serverbaserade program kan också styras med JavaScript.
Ursprunget till JavaScript
Trots namnet har JavaScript inte mycket med Java att göra. Ursprungligen skulle skriptspråket heta LiveScript och utvecklades av Netscape för att Netscape Navigator skulle kunna interagera med Java-applets (Java-klientprogram). Eftersom JavaScript är en egenutvecklad programvara var det en konkurrensfaktor för företag som t.ex. Microsoft representerade. Dessa svarade på utvecklingen av JavaScript med egna lösningar, t.ex. skriptspråket JScript. Med tiden har dock JavaScript etablerat sig som det primära skriptspråket, som nu stöds av alla webbläsare, för klientsidan och (förutom för php) dynamisering på serversidan.
Dynamisering på klientsidan
Den mest använda funktionen i JavaScript är förmodligen möjligheten till dynamisering på klientsidan. Klienten är webbläsaren. Dynamisering på klientsidan innebär att det konkreta innehåll som visas på klienten manipuleras. HTML är den statiska beskrivningen av en webbplats struktur, den så kallade Document Object Model (DOM). Medan CSS (Cascading Style Sheets) används för den separata utformningen av detta "skelett", ger JavaScript möjlighet att flytta, ta bort eller lägga till HTML-element.
Denna DOM-manipulering (DOM-skript) kan användas på många olika sätt. Funktioner är till en början bundna till vissa händelser via så kallade händelsegivare. Det kan handla om användarens klick, tider eller till och med laddningen av webbplatsen. Händelsebaserade ändringar kan sedan utlösas via de ID:er som tilldelats element i HTML. Det kan handla om allt från att programmera enkla, dynamiska formulär eller tabellfilter till att bädda in videospelare eller komplex, dynamisk grafik.
JQuery: Det mindre komplicerade JavaScript
JavaScript är ett exempel på objektorienterade programmeringsspråk. Därför är tröskeln för oerfarna webbdesigners relativt hög. JavaScript-biblioteket JQuery erbjuder en förenklad syntax som möjliggör de vanligaste användningsområdena på ett snabbt och enkelt sätt, utan att begränsa JavaScript-funktionerna (mycket). Medan JavaScript, med sin definition av prototyper (i stället för klasser), instanser (konkreta objekt) och metoder (funktioner som är bundna till objekt), erbjuder en liknande komplexitet och ändringsbarhet som till exempel Java eller Python, begränsar JQuery vokabuläret och strukturerna. Kommandona är nästlingsbara, så strukturen kan förstås ganska snabbt. Om det inte rör sig om komplexa, ovanliga tillämpningar finns det därför med stor sannolikhet en enkel lösning i JQuery.
Dynamisering på serversidan: AJAX och Node.js
Förutom DOM-manipulering används JavaScript även för kommunikation med servrar, t.ex. för databasfrågor. Sedan 2009 finns node.js, ett ramverk för dynamisering på serversidan med JavaScript. Detta var möjligt redan före 2009, men node.js gör det lättare att integrera. Detta är en fördel för JavaScript-programmerare, eftersom de inte längre behöver använda andra språk som php. Dessutom möjliggör node.js parallellisering av processer. Detta är en fördel eftersom för många av dessa så kallade trådar kan leda till stillastående. Med node.js körs förfrågningar på en enda tråd, vilket kan öka prestandan avsevärt.
Node.js är ett exempel på möjligheterna med AJAX. Akronymen står för ett förfarande som kallas Asynchronous JavaScript and XML. Denna princip gör det möjligt att begära innehåll från servrar utan att behöva ladda om hela sidan. För många webbtjänster, t.ex. YouTube, skulle det vara en stor nackdel att behöva ladda om helt och hållet efter videoförfrågningar eller kommentarer. AJAX är också en lösning på problemet med ackumulerade förfrågningar tack vare asynkron behandling, vilket förklaras ovan för Node.js.
Integrering av JavaScript
Den grundläggande integreringen av JavaScript i webbutbud fungerar på exakt samma sätt som anslutningen till CSS-filer. Det finns två möjligheter till detta: JavaScript kan å ena sidan användas i huvudet och å andra sidan i kroppen av HTML-dokumentet.