maniac Posted February 14, 2008 Posted February 14, 2008 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.
Niraj Posted February 14, 2008 Posted February 14, 2008 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
kmount Posted February 14, 2008 Posted February 14, 2008 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.
dhicks Posted February 14, 2008 Posted February 14, 2008 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
srochford Posted February 14, 2008 Posted February 14, 2008 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
brokendash Posted May 7, 2014 Posted May 7, 2014 (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 May 8, 2014 by Little-Miss Language
Arthur Posted May 8, 2014 Posted May 8, 2014 Knockout.js can automatically update a webpage without reloading the entire page. Example: Knockout.js Observable Arrays - CodePen 1
dhicks Posted May 8, 2014 Posted May 8, 2014 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.
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now