Progress on nsjsapi running jQuery under AOLserver
Wednesday, October 24th, 2007It’s not fully baked yet, but let me take a break from coding to … squee! You have no idea how excited I am right now.
Back in February, I blogged about nsjsapi, an AOLserver module that makes the SpiderMonkey JavaScript interpreter (written in C) available to Tcl. Then, in July, John Resig blogged about env.js, which he used to load jQuery under the Rhino JavaScript interpreter (written in Java). env.js is neat because it’s a JavaScript implementation of a basic browser and DOM environment which isn’t provided by either SpiderMonkey or Rhino.
However, env.js assumes its running under Rhino, or at least has all the java.* and javax.* and org.w3c.dom.* APIs available, so it doesn’t completely work under SpiderMonkey. So, I’ve set out to implement all those missing bits in JavaScript, in nsjsapi.js. (Yes, I know I’m crazy …)
After a few days of furious coding and much head-desking, I’ve gotten far enough that I can do this from an AOLserver control port:
nscp 1> set js [js create]
js0x88e0838
nscp 2> js load $js /home/dossy/htdocs/js/nsjsapi.js
undefined
nscp 3> js load $js /home/dossy/htdocs/js/env.js
undefined
nscp 4> js load $js /home/dossy/htdocs/js/jquery-1.2.1.js
undefined
nscp 5> js eval $js {jQuery.fn.toString = DOMNodeList.prototype.toString; true;}
true
nscp 6> js eval $js {window.location = 'test/index.html';}
undefined
nscp 7> js eval $js {$('body').html()}
<div><span id='foo'>This is a test.</span></div>
nscp 8> js eval $js {$('div').append('<span>Hello world!</span>')}
[ <div> ]
nscp 9> js eval $js {$('body').html()}
<div><span id='foo'>This is a test.</span><span>Hello world!</span></div>
I guess this doesn’t seem like much of an accomplishment, but it’s a huge first step towards being able to do actual JS-based server-side web development under AOLserver.
I want to iron out a strange crash bug when the JS interp. is destroyed via [js destroy], and complete the file I/O stub that isn’t finished yet, then check in nsjsapi.js. I plan to get this done in time for my talk at jQueryCamp07 this weekend.
Tags: AOLserver, jQuery, JavaScript, nsjsapi








March 12th, 2010 at 10:30 pm
Mikki: I would hazard a guess that any reasonably experienced technician should do an adequate job. Obviously, every individual ...
March 12th, 2010 at 9:52 pm
Okay...now you have me worried...I've had my WONDERFUL Bosch washer/condensation dryer for about 8 years without a problem (okay so ...
March 11th, 2010 at 8:45 am
I'm not sure, but I'm guessing it's the belt that turns the drum - may be too tight, may be ...
March 11th, 2010 at 6:57 am
Hello all. I now have a different problem. The drum groans as it spins. When you try ...
March 10th, 2010 at 9:35 pm
Hi Dossy, Thanks much for sharing the knowledge with others. This article helps me to avoid DISM errors : ...