Jump to content

Automatically refresh a webpage ONLY when content has changed?


Recommended Posts

Posted

Hey there,

 

I'm in the process of writing a simple digital signage application, which is essentially some javascript displaying in a fullscreen webrowser which scrolls the contents of a HTML file up the screen. That side of it works well.

 

I've also written a simple interface to update the contents.htm file using FCKeditor, but at the moment to get it to display the new contents requires a manual refresh of the webpage, which isn't ideal. (the screens for this are going to be fairly high up on a wall, and the PC is going to be the other side of the wall)

 

What i'm looking for is some javascript or simelar which will automatically refresh the page only if the contents.htm file has been changed. Is this possible?

 

I know I could use a set timed refresh on the page, say every 5 minutes, but the javascript takes a while to get going when you load the page, and I don't really want it doing this every 5 minutes if it can be helped. The contents are likely to only be updated once or twice a week.

 

Any ideas gratefully received.

 

Mike.

Posted

You can do this within HTML. In between the

tags add the following

 

 

This will reload the page every 5 mintues, the CONTENT is in seconds, so you can change this accordinly.

 

HTH

 

Cheers

 

N

Posted

The OP specifically said he didn't want a timer like that.

 

Mind you, I don't have a better solution other than suggesting a manual refresh if its only modified once or twice a week as opposed to making something complicated which needn't be.

Posted
What i'm looking for is some javascript or simelar which will automatically refresh the page only if the contents.htm file has been changed. Is this possible?

 

There's no need to refresh the whole page at all - simply have your controlling page re-load the contents.htm file every 5/10/whatever minutes. How are you loading content.htm into the containing page - are you loading it in to a hidden DIV element? If so, use a Javascript timer to delete the contents of that DIV periodically and load contents.htm again. Might even be simper to use a for loop - run 10 times around the loop, reload contents.htm, start again.

 

--

David Hicks

Posted

Ajax feels like the right answer (it's a good buzzword so it must be right :-))

 

The other thing might be to have a script running which checks to see if there's new content every 5 minutes. If it finds new content then it refreshes the browser.

 

Code below is not complete - I don't know how you will determine if there is new content but I'm guessing you'll query a database for a "last updated" field??

 

Set oIE=createobject("internetexplorer.application")

Do While (oIE.Busy)

Wscript.Sleep 250

Loop

oIE.width=1024

oIE.height=768

oIE.left=0

oIE.top=0

oIE.visible=true

oIE.navigate "http://server/sign.htm"

 

do

wscript.sleep 5*60*1000 ' sleep 5 minutes

'code here to query database for new content

if bNewContentFound then

oIE.navigate "http://server.sign.htm"

end if

loop

  • 6 years later...
Posted (edited)
There's no need to refresh the whole page at all - simply have your controlling page re-load the contents.htm file every 5/10/whatever minutes. How are you loading content.htm into the containing page - are you loading it in to a hidden DIV element? If so, use a Javascript timer to delete the contents of that DIV periodically and load contents.htm again. Might even be simper to use a for loop - run 10 times around the loop, reload contents.htm, start again.

 

--

David Hicks

 

 

 

 

Hello, I came across this post needing to solve this problem for myself and like your method rather then using ajax. I was wondering if you could point me to some example code maybe... and I apologize for my lack of skills in this area but since I'm literally hungry in this poor economy I'm forced to learn how everything at the same time with no time to primer. :-( I'm thinking this will work for what I'm needing to achieve transparently without the viewing end user visually seeing a full on reload were the content flashes away as everything loads in.

Edited by Little-Miss
Language
Posted
Hello, I came across this post needing to solve this problem for myself and like your method rather then using ajax.

 

If you have content in an iframe on a page that you need to reload periodically, you should simply be able to trigger a "reload" via Javascript / JQuery:

 

javascript - Reload an iframe with jQuery - Stack Overflow

 

Depending on how large that iframe is, the user might still see a section of the page disapear while it reloads - Knockout.js, as detailed above, might be more suitible for you situation.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



×
×
  • Create New...