in reply to Re^2: webperl: fetching data over the web
in thread webperl: fetching data over the web

The zip file from your webpage didn't include a democode directory.

That's why I copied and hacked webperl_demo.html.

(edit: cloning the frame structure of the former didn't work instantly)

Cheers Rolf
(addicted to the Perl Programming Language :)
Wikisyntax for the Monastery FootballPerl is like chess, only without the dice

  • Comment on Re^3: webperl: fetching data over the web

Replies are listed 'Best First'.
Re^4: webperl: fetching data over the web
by haukex (Archbishop) on Nov 08, 2018 at 15:48 UTC

    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 :-) ).

      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.

      Cheers Rolf
      (addicted to the Perl Programming Language :)
      Wikisyntax for the Monastery FootballPerl is like chess, only without the dice

        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?