Thanks, forum. Plenty of ideas to try here. Plus some good links for further study.
Ian Clark On Tue, Sep 5, 2017 at 4:35 PM, Raul Miller <[email protected]> wrote: > For server sent events, you'd need to remove the Connection: Close > http header and replace it with a Content-Length: nnn header. > > You'd also need to jhs to leave the socket open so that the events can > be sent using that same connection. This would require some > significant restructuring of jhs, to track open sockets (and clean up > when they close). > > FYI, > > -- > Raul > > > On Tue, Sep 5, 2017 at 10:30 AM, Gilles Kirouac <[email protected]> wrote: > > Depending on your requirements (the browser used by users), you could > > consider Server-Sent Events, an alternative to websockets, but they are > > not supported in IE neither (yet?) in Edge. > > > > In HTML5, Server-Sent Events are probably what you need. Have a look at > > the following with a clock example in PHP and ASP(VB): > > > > https://www.w3schools.com/html/html5_serversentevents.asp click the > > Try it Yourself button > > > > https://en.wikipedia.org/wiki/Server-sent_events > > > > I do not know how to write the server part in jhs, but others(Eric?) > > could help. > > > > ~ Gilles > > > > Le 2017-09-05 à 09:18, Stefano Lanzavecchia a écrit : > >> A META header in the <Head> section of the HTML page can force a > recurrent refresh. The first article Google found on the subject is this > one: http://www.htmlgoodies.com/tutorials/getting_started/ > article.php/3479551 The article also shows a micro-snippet in JavaScript > to obtain a similar effect on a user click. > >> > >> In order to obtain a similar effect under program control, where the > server decides when it's time to upgrade, one needs to keep a channel > opened between the browser and the server. This implies tricky JavaScript > code client-side and tricky code server side. Modern browser can leverage > so-called websockets (https://en.wikipedia.org/wiki/WebSocket) as long > as the server is up to the game. There are fallback strategies ( > https://stackoverflow.com/questions/7807066/how-signalr- > works-internally/7874352#7874352). In general, having a full-duplex > communication between a browser and a web server is possible but it's not > trivial and its complexity depends, among various other things, on the > level of compatibility required. Personally, before embarking in anything > more complex, I would try and see if the Meta Refresh tag is good enough. > >> > >> Good luck! > >> -- > >> Stefano > >> > >> -----Original Message----- > >> From: Programming [mailto:[email protected]] On > Behalf Of Raul Miller > >> Sent: martedì 5 settembre 2017 14:54 > >> To: Programming forum <[email protected]> > >> Subject: Re: [Jprogramming] How can I auto-refresh a JHS app page? > >> > >> That's pretty much it. The browser is in control here, and jijx is only > indirectly in control as a result. > >> > >> Probably the simplest would be to put something like Refresh: 3 in the > http headers in your MYTEMPLATE (before the first blank line). But I > haven't tested that - I probably need to upgrade my jhs implementation > before your code would work for me. > >> > >> Thanks, > >> > >> -- > >> Raul > >> > >> > >> On Tue, Sep 5, 2017 at 8:27 AM, Ian Clark <[email protected]> > wrote: > >>> Currently I'm hacking it by using Keyboard Maestro to execute a timer > which > >>> reloads the message URL every 3 seconds. > >>> > >>> I guess much the same thing could be done using Javascript embedded in > >>> message.ijs? – if I knew any Javascript. > >>> > >>> Another expedient is to write out the message display to a textfile > >>> (~/message.txt) and open it using TextWrangler. This (unlike TextEdit) > >>> refreshes its display window whenever message.txt is rewritten. > >>> > >>> But these expedients are inelegant. I guess web browsers were not > designed > >>> to do this sort of thing. (Or designed not to do this sort of thing?) > >>> > >>> On Tue, Sep 5, 2017 at 2:59 AM, Ian Clark <[email protected]> > wrote: > >>> > >>>> Suppose I am a JHS coder, working with the J session (the jijx page), > and > >>>> have written an app called "message" (say). This generates a page of > data > >>>> in response to the URL: > >>>> > >>>> http://localhost:65001/message > >>>> > >>>> which I choose to display in a separate browser window. Let's call it > the > >>>> message window. > >>>> > >>>> If I execute some phrase in jijx which changes the content of the > message > >>>> window, then in the normal course of things I would need to manually > reload > >>>> the page in order to see the altered data. For example (in Safari) by > >>>> activating the message window and clicking the symbol: "Reload this > page". > >>>> > >>>> How can I write a verb (to be executed in jijx) which refreshes the > >>>> message window without having to do that? > >>>> > >>>> > >>> ---------------------------------------------------------------------- > >>> For information about J forums see http://www.jsoftware.com/forums.htm > >> ---------------------------------------------------------------------- > >> For information about J forums see http://www.jsoftware.com/forums.htm > >> > >> ---------------------------------------------------------------------- > >> For information about J forums see http://www.jsoftware.com/forums.htm > > > > > > ---------------------------------------------------------------------- > > For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
