It's probably worth noting that a meta refresh tag - see
http://blooberry.com/indexdot/html/tagpages/m/meta.htm for some docs -
is one that would look like this:

<meta http-equiv="Refresh" content="3; URL=http://localhost:65001/message"; />

But what this is doing, in essence, is creating an http header that
would look like this:

Refresh: 3; URL=http://localhost:65001/message

In other words, rather than doing this:

MYTEMPLATE=: 0 : 0
HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Connection: close

<html>
<head>
<meta http-equiv="Refresh" content="3; URL=http://localhost:65001/message"; />
</head>
<body>
<pre>
PAGECONTENT
</pre>
</body>
</html>
)

(or, optionally, eliminating the html and body tags, since the browser
should reconstruct them for us)

you could achieve the same thing by doing this:

MYTEMPLATE=: 0 : 0
HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Connection: close
Refresh: 3; URL=http://localhost:65001/message

<pre>
PAGECONTENT
</pre>
)

You could also probably remove the ';
URL=http://localhost:65001/message' part - I think the browser would
use the page's url if the refresh url is not specified.

Finally, note that those name: value HTTP headers can be arranged in any order.

I could go on, but hopefully this is enough to understand something
about this option.

Thanks,

-- 
Raul


On Tue, Sep 5, 2017 at 9:18 AM, Stefano Lanzavecchia <s...@apl.it> wrote:
> 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:programming-boun...@forums.jsoftware.com] On Behalf 
> Of Raul Miller
> Sent: martedì 5 settembre 2017 14:54
> To: Programming forum <programm...@jsoftware.com>
> 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 <earthspo...@gmail.com> 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 <earthspo...@gmail.com> 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

Reply via email to