JavaScript som en server-side kode for Apache

December 25

Udvikling af en enkelt web applikation kræver typisk to eller flere forskellige programmeringssprog. For eksempel kan en typisk webapplikation køre PHP script på en Apache webserver og JavaScript på en brugers pc. Dette gør softwareudvikling og debugging processer mere kompleks og udsat for fejl. Mens flere selskaber har tidligere udviklede versioner af JavaScript kører på en webserver, det var udgivelsen af ​​Googles "V8" JavaScript-motor, der har fornyet interesse i en server-side version af JavaScript. Node.js inkorporerer "V8" og giver ikke kun en fælles kunde- og server-side sprog, men også leverer betydelige forbedringer i hastighed end de nuværende klientsiden sprog kører på Apache.

Client-side scripting

JavaScript er overvejende en klient-side scripting sprog, fordi det udfører sin kode på klienten, eller brugerens, computer. Hele scriptet er indlæst eller cachet i hukommelsen på klient-pc'en og fortolket af browseren, som indeholder en JavaScript-motor. Fordi det er hjemmehørende i hukommelsen, kan klientsiden JavaScript samme vil tjekke værdierne i en form og kan manipulere indholdet af en skærm "on-the-fly" uden at skulle route resultater tilbage til en Apache webserver. Dog kan klientsiden kode læses og endog ændres af en bruger på klient-pc'en.

Server-side scripting

En server-side scripting sprog udfører sin kode på en webserver. For eksempel, PHP er et populært scriptsprog oftest gennemføres på en Apache webserver. Mens server side sprog ikke kan ændre indholdet af skærmbilleder uden at sende data tilbage til webserveren, kan de interagerer med ressourcer på webserveren, såsom en database, til at generere dynamiske sider baseret på scripted kode. Server-side kode er også beskyttet af webserveren, som kun vil udføre den. Når konfigureret korrekt, vil en Apache-server aldrig sende rå PHP kode til en klient maskine.

Ulempe forskellige sprog

Softwareudvikling ville være lettere, hvis der var én fælles sprog for client-side og server-side opgaver. I dag, forskellige scriptsprog giver forskellige resultater for, hvad der synes at være identiske funktioner. For eksempel, når du forespørge den aktuelle tid i forhold til 1 januar 1970 i PHP, returnerer funktionen antallet af sekunder. Den samme forespørgsel i JavaScript returnerer antallet af millisekunder. En programmør har brug for at vide dette og justere enten JavaScript eller PHP resultat, når de forsøger at sammenligne værdier på tværs af sprog. Programmører arbejder på hold har brug for at blive enige om en standard for at konvertere værdier mellem sprogene. Der er mange eksempler på disse former for uoverensstemmelser, der gør at skabe og debugging applikationer, der bruger både klientsiden og serversiden kode meget mere vanskeligt og tidskrævende.

JavaScript "V8"

Flere virksomheder har udviklet server-side-versioner af JavaScript i et forsøg på at gøre det muligt for programmører at bruge et enkelt sprog, når de udvikler applikationer. Aptana udviklede Jaxster baseret på Mozilla Gecko engine, der FireFox. Microsoft inkorporeret JavaScript i sin ASP sprog. Men når Google udgivet sin Chrome browser, det afslørede en JavaScript-motor kaldet "V8", der er ekstremt hurtig og relativt let at inkorporere i andre applikationer. Dette har ført til udviklingen af ​​server-side JavaScript, der ikke kun giver en ensartet sprog på tværs af klient og server, men tilvejebringer også signifikant bedre ydeevne end de nuværende server-side sprog. For eksempel node.js fra Joyent er en begivenhed-drevet server-side JavaScript for Apache, der vinder i popularitet.


relaterede artikler