Utvikling av en enkelt web søknad vanligvis krever to eller flere forskjellige programmeringsspråk. For eksempel kan en typisk web-applikasjon kjøre PHP skript på en Apache webserver, og JavaScript på brukerens PC. Dette gjør programvareutvikling og debugging prosesser mer kompleks og utsatt for feil . Mens flere selskaper har de siste utviklede versjoner av JavaScript for å kjøre på en webserver , var det utgivelsen av Googles " V8 " JavaScript -motor som har fornyet interesse i en server-side versjon av JavaScript. Node.js inkorporerer " V8 " og gir ikke bare en vanlig klient - og server - side språk , men også gir betydelige forbedringer i hastighet i forhold til dagens klient - side språk som kjører på Apache. Client -Side Scripting
JavaScript er hovedsakelig en klient - side skriptspråk fordi det utfører sin kode på klienten eller brukeren , datamaskin . Hele skriptet er lastet eller lagret i minnet på klient-PC og tolket av nettleseren , som inneholder en JavaScript-motor . Fordi det er bosatt i minnet , kan klientsiden JavaScript kjapt å finne verdier på et skjema og kan manipulere innholdet i en skjerm "on- the- fly" uten å måtte rute resultatene tilbake til en Apache webserver. Imidlertid kan klientsiden kode leses og selv endret av en bruker på klient-PC .
Server -Side Scripting
En server -side skriptspråk utfører sin kode på en webserver . For eksempel er PHP et populært skriptspråk som oftest gjennomført på en Apache webserver. Mens server side språk ikke kan endre innholdet i skjermene uten å sende data tilbake til webserveren , kan de samhandler med ressurser på webserveren , for eksempel en database , for å generere dynamiske sider basert på manus kode . Server-side koden er også beskyttet av web-serveren , som bare vil kjøre den. Når den er riktig konfigurert, vil en Apache server aldri sende rå PHP-koden til en klient maskin.
Ulempen med forskjellige språk
Programvare utvikling ville være lettere hvis det var ett felles språk for klient-side og server-side oppgaver. I dag , forskjellige skriptspråk gi ulike resultater for det som ser ut til å være identiske funksjoner. For eksempel når du spør gjeldende tid i forhold til 1 januar 1970 i PHP, returnerer funksjonen antall sekunder . Det samme søket i JavaScript returnerer antall millisekunder . En programmerer trenger å vite dette og justere enten JavaScript eller PHP resultat når du prøver å sammenligne verdier på tvers av språk . Programmerere som arbeider på lag må bli enige om en standard for konvertering av verdier mellom språk . Det finnes mange eksempler på slike uoverensstemmelser som gjør skape og debugging applikasjoner som bruker både klient - side og server - side kode mye mer vanskelig og tidkrevende .
JavaScript " V8 "
Flere selskaper har utviklet server-side versjoner av JavaScript i et forsøk på å tillate programmerere til å bruke et enkelt språk når du utvikler applikasjoner. Aptana utviklet Jaxster basert på Mozilla Gecko -motoren som driver FireFox . Microsoft innarbeidet JavaScript i sin ASP språk . Men da Google lanserte sin Chrome nettleser, avduket det en JavaScript-motor som kalles " V8 " som er ekstremt rask og relativt lett å innlemme i andre programmer. Dette har ført til utvikling av server-side JavaScript som ikke bare gir en konsekvent språk på tvers av klient og server, men også gir betydelig bedre ytelse enn dagens server - side språk . For eksempel er Node.js fra Joyent en hendelse -drevet server-side JavaScript for Apache som er stadig i popularitet .