brainbaking/content/wiki/code/javascript/serverside.md

1.5 KiB

+++ title = "serverside" draft = false tags = [ "code", "javascript", "serverside" ] date = "2013-03-12" +++

JS Serverside draaien

JS Server Parsers

Java: Rhino

Vooral gericht op serverside integratie met bijvoorbeeld Java EE.

Zie http://www.mozilla.org/rhino/

C++: Google V8

Wordt bijvoorbeeld gebruikt in Google Chrome.

Zie http://code.google.com/p/v8/

-> Ook via CLI aan te spreken in .NET - zie http://jint.codeplex.com/

C: SpiderMonkey

Wordt bijvoorbeeld gebruikt in Mozilla Firefox.

Zie http://www.mozilla.org/js/spidermonkey/

Headless DOM Manipulatie

Omdat serverside Javascript geen window object als toplevel scope bestaat, kunnen we ook geen DOM manipulatie uitvoeren. Er is hier echter een oplossing voor, bovenop bijvoorbeeld Rhino: env.js. Meer achtergrondinfo is hier te vinden: http://ejohn.org/blog/bringing-the-browser-to-the-server/

Envjs is een laag die het mogelijk maakt om aan de serverkant zelfs aan screen scraping te doen, door bijvoorbeeld:

window.location = 'http://www.google.com';
var wowContentsAreAwasom = jQuery('#interesting').html();

Dit zónder de browser effectief open te hebben! Dit is ook makkelijk voor test integratie, bijvoorbeeld QUnit testen met integratietesten die DOM manipulatie uitvoeren, te integreren in de build. Aangezien een Ant build Java is, kunnen we Rhino gebruiken samen met Envjs om de QUnit testen te runnen, en met een aangepaste report generator dit zelfs als JUnit test report te outputten.