Ah, I see - the democode stuff is in the repo, and it'll also be part of the next release. webperl_demo.html uses Perl.makeOutputTextarea(id), which merges STDOUT and STDERR (which I just added to the documentation, thanks :-) ).
| [reply] [d/l] [select] |
OK I'm back online. :)
I created the following page called weblib_demo.html inside the deflated zip-dir (webperl_prebuilt_v0.07-beta.zip) from your webpage:
It shows the alert box from JS but the Perl execution blocks the tab till I get a "Tab crashed" message (in German) after a minute or so.
Reproducible in FF and chrome.
I'm suspecting it has to do with error handling of the deprecation warning.
I tried to copy the democode directory directly from github, but calling demo.html creates an endless loop of "Perl initializing" and "ended" messages.
I suppose the webperl versions are not compatible and I need to clone the whole github rep.
That's the messages I get on the console
I think creating a new zip including the "democode" stuff would be helpful for causal tests.
| [reply] [d/l] [select] |
Thank you, with that HTML file I can reproduce it too. (BTW, req.open('GET', 'http://localhost:5000/emperl.js', false); should probably be req.open('GET', url, false);)
emperl.js is pretty huge, so I tried changing it to webperl.js, and although it exhibited the same behavior of seeming to block the webpage, after a little while it got unstuck and displayed the output. If you do print length(js(...)) instead of print js(), you get a result much quicker. The same is true if you remove the <textarea> from the HTML page, which causes the output to go to the JS console. There is obviously something very inefficient going on with the <textarea>, I'll take a guess that it's this line: ta.value = ta.value + str;.
I didn't put a lot of effort into optimizing the STDOUT/ERR routines because in the WebPerl applications I was imagining, there wouldn't be any console output, and everything would get handled through the UI. But in the case of this textarea, there's certainly a lot of room for improvement. (Patches welcome :-) )
The endless loop of initializing/ended is also interesting, something I haven't seen yet, could you tell me the steps to reproduce that?
| [reply] [d/l] [select] |