(N.B.: Yes, this is a ridiculous question, and I will be entirely unsurprised if the answer to this question is "no". That said:)
I've written an XSLT stylesheet which deliberately performs a lengthy, unparallelizable computation on an XML fragment. It's intended as a component of a proof-of-work system to be used in a web browser as a sort of CAPTCHA that doesn't require any input from the user -- the result of the computation gets submitted as a hidden form element when the user POSTs data to the server. The form contents are only accepted if the computed value is correct. (The computation is structured in such a way that the server can cheaply provide the user with input parameters to a function, and the server knows the result without having to do a lot of work, but the user's machine has to spend cycles to determine the result.)
The transformation works just fine, but unfortunately hangs the browser while the computation is going on. Since my goal is to have this computation running while the user continues to use the browser, this is unacceptably annoying behaviour. Is there a way to background the transformation and leave the browser usable while it runs? One thought I had was to load the source XML fragment from an iframe, but I haven't been able to get the transform to work at all using this approach. I figured I'd ask here to see if anyone has any brilliant ideas before beating my head against this much further -- if I'm trying to do something that's fundamentally impossible given the way browsers work, it would be nice to know.
I know I could do this in Javascript, but it would be nice not to have to. Any ideas?
EDIT: Guys, I know about recaptcha.net and other alternatives. This is an experiment. My goal is to find out whether a theoretical idea can be reduced to practice in a way that isn't too onerous for the user. I'm not looking for alternative implementations, I'm looking for a way to do a cryptographically strong CAPTCHA that doesn't involve Javascript. (If I wanted to use Javascript, I'd use one of the Javascript hashcash implementations.) The only other browser-based Turing-complete language out there is XSLT. Please consider the question in the spirit in which it was asked.