Avatar billede jmdahl Nybegynder
22. marts 2004 - 16:45 Der er 37 kommentarer og
2 løsninger

refresh page efter uret på computeren

Hej dygtige folk,

Jeg har søgt i flere timer efter et head script, som refresher en html-side efter computerens ur. Dvs. refresher på et bestemt antal tidspunkter. Jeg har nemlig brug for, at flere html sider opdateres samtidig og så går det ikke med den simple
<meta http-equiv="refresh" content="10"> fordi siderne så går ud af synkronisering. Scriptet skal altså "gå ned" og læse computerens ur og opdatere html-siderne herefter.

Ser frem til dit svar:-)
Avatar billede thesurfer Nybegynder
22. marts 2004 - 16:47 #1
Hvad er tidspunktet? Giv et eksempel.
Avatar billede roenving Novice
22. marts 2004 - 16:52 #2
<body onload="setTimeout('refreshWindow()',100);">

<script type="text/javascript">
function refreshWindow(){
//refresher vinduet, hvis kaldet kommer indenfor det 1/10 sekund af et minut !-)
var nu = new Date();
if(nu.getTime()%60000<100)location.reload(true);
}
</script>
Avatar billede jmdahl Nybegynder
22. marts 2004 - 17:03 #3
Svar til thesurfer - så kan tidspunktet fx være kl 12 og så igen kl 12.10 etc. Altså helt konkret har jeg 4 html-sider åbne og de skal synkroniseres samtidig. Og såvidt jeg kan se, kan det kun lade sig gøre ved, at de henten tiden på computeren, fordi der er en tidsforskydning i åbning af siderne og derfor går en refresh på fx 10 sek. ikke.
Avatar billede thesurfer Nybegynder
22. marts 2004 - 17:22 #4
Skal opdatering ske hvert 10. minut? Dvs, 12:00, 12:10, 12:20, 12:30..
Avatar billede jmdahl Nybegynder
22. marts 2004 - 17:26 #5
Ja, det ville være fint.
Avatar billede thesurfer Nybegynder
22. marts 2004 - 17:39 #6
Prøv det her:

<body onload="setTimeout('refreshWindow()',1000);">

<script type="text/javascript">
var tidspunkter = "00,10,20,30,40,50,37";
var tid = tidspunkter.split(",");
var nu = new Date();

function refreshWindow()
{

for (i=0; i < tid.length; i++) {
if (nu.getMinutes() == tid[i]) location.reload(true); }
  }

}
</script>
Avatar billede thesurfer Nybegynder
22. marts 2004 - 17:40 #7
Glemte en lille kommentar:
Læg mærke til "37".. dvs, du kan selv bestemme minuttal.. ikke kun hvert 10. minut, men et mere specifikt minuttal..
Avatar billede thesurfer Nybegynder
22. marts 2004 - 17:41 #8
rettelse (der skal ikke et "}" sidst i linie..):
if (nu.getMinutes() == tid[i]) location.reload(true);
Avatar billede roenving Novice
22. marts 2004 - 18:33 #9
Problemet med den metode er, at siden vil blive ved med at reloade, hvis den tager under et minut at loade !-)

Præcis derfor min indgangsvinkel !o]
Avatar billede roenving Novice
22. marts 2004 - 18:37 #10
For at sikre, at den kun kommer een gang pr. interval er man nødt til at sikre sig, at det kun sker indenfor en periode, som kun kan forekomme een gang ...

-- og min skal have et nul mere, hvis den skal reloade kl. 12.00, 12.10 osv.

<body onload="setTimeout('refreshWindow()',100);">

<script type="text/javascript">
function refreshWindow(){
//refresher vinduet, hvis kaldet kommer indenfor det første 1/10 sekund af hvert 10. minut !-)
var nu = new Date();
if(nu.getTime()%600000<100)location.reload(true);
}
</script>
Avatar billede olebole Juniormester
22. marts 2004 - 19:28 #11
<ole>

Du kan ikke opdatere siderne på samme tidspunkt. Der er forskel - som sagtens kan være flere sekunder - på hvorlang tid, det tager browseren at hente siderne på serveren.

Hvorfor skal de opdateres samtidigt? Måske, vi kan finde en god måde at opdatere på, hvis vi kender årsagen - for det, du har gang i, virker ikke synderlig gennemtænkt  :)

/mvh
</bole>
Avatar billede jmdahl Nybegynder
23. marts 2004 - 09:07 #12
Jeg vil prøve jeres forslag - hvordan giver man så point?

Til Ole, så skal siderne opdateres samtidigt, fordi der er tale om 4 html-sider, som vises på hver deres skærm, men kører på en og samme computer. (Der er indsat et Matrox grafikkort med fire skærmudgange).
Avatar billede thesurfer Nybegynder
23. marts 2004 - 16:59 #13
jmdahl>
"Behandling af svar": http://expfaq.1go.dk/?id=3#behandling_af_svar

Læs "Vejledning til nye brugere af Eksperten.dk": http://expfaq.1go.dk/
Og tag et smut forbi Ekspertens regler (bare for en sikkerhedsskyld..): http://www.eksperten.dk/regler.phtml

:-)
Avatar billede olebole Juniormester
23. marts 2004 - 18:24 #14
Hmmm ... jeg tvivler meget stærkt på, du opnår bedre sync. med en JS-setTimeout, end du gør med en meta-refresh  :)
/mvh
Avatar billede roenving Novice
23. marts 2004 - 21:15 #15
-- men der er jo netop ikke brugt en setTimeout i de eksempler, som er lagt ...

-- setTimeout er kun brugt til at kalde en funktion engang imellem for at checke computerens tidsindstilling !-)
Avatar billede olebole Juniormester
23. marts 2004 - 22:04 #16
Nuvel, men jeg tror nu stadig ikke, vinduerne kommer i bedre sync i forhold til hinanden  :)
Avatar billede roenving Novice
23. marts 2004 - 22:06 #17
-- med min ide vil kaldet til nye sider ske inden for 1/10-del sekund, det må vel være tilstrækkeligt for hvemsomhelst !-)
Avatar billede olebole Juniormester
23. marts 2004 - 22:12 #18
Ja, men det betyder ikke, at serveren (og slet ikke siderne) bliver opdateret på samme tid. Der kan være mange sekunder imellem - p.gr.a. 'trafik-propper' på nettet  ;o)
Avatar billede roenving Novice
23. marts 2004 - 22:15 #19
Næh, men det betyder at der ikke ophobes unøjagtigheder !-)

-- det ville netop meta refresh og en simpel setTimeout gøre !-)

-- og lur mig, om ikke det jmdahl er igang med er en præsentation, hvor han i forvejen henter det fra en internt netværk eller måske ovenikøbet fra en server på samme computer !o]
Avatar billede olebole Juniormester
23. marts 2004 - 22:43 #20
1. Helt rigtigt
2. Hmmm ... det er jo ikke til at vide  :)
Avatar billede roenving Novice
23. marts 2004 - 22:50 #21
Næh, vi må jo nøjes med at give ham det, han efterspørger, og da det er client-side, og alle hjemmesider kører med den samme computers ur, kan vi jo ikke komme nærmere !-)
Avatar billede olebole Juniormester
23. marts 2004 - 22:53 #22
Jooohhh .... man kunne da sende et time-stamp med fra serveren og arbejde videre på det (med JS). Så er alle brugere i samme sync - men det er jo ikke til at vide, om det er det ønskelige  :)
Avatar billede roenving Novice
23. marts 2004 - 23:06 #23
-- og timestamps fra serveren er ikke afhængig af indernettets snørklede veje og uveje ?-)
*g*
Avatar billede olebole Juniormester
23. marts 2004 - 23:10 #24
Jo, men browserne opdaterer ikke kl.12:00 og kl.15:23 (med tre dage imellem), fordi deres ure er helt i koks  ;o)
Avatar billede olebole Juniormester
23. marts 2004 - 23:11 #25
At man ikke kan slippe udenom delays p.gr.a. trafik på nettet, går jeg udfra, vi allerede er enige om - men derfor kan man jo godt minimere fejlene  ;o)
Avatar billede roenving Novice
23. marts 2004 - 23:17 #26
>>olebole @ 23:10:42

-- øeh, hvad ?-)
Avatar billede olebole Juniormester
23. marts 2004 - 23:23 #27
22/03-2004 17:03:41
22/03-2004 17:22:17
22/03-2004 17:26:13

Brugeres ure kan vise alle mulige tidspunkter, når klokken er 12:00 - det ved kun den enkelte bruger. Skal opdateringen foregå på bestemte tidspunkter, er det vel bedst at lade ét ur bestemme ... og det på serveren har man jo (måske) selv styr på  :)
/mvh
Avatar billede roenving Novice
23. marts 2004 - 23:48 #28
Øeh, så har du måske overset, at det jmdahl er igang med, er at vise 4 forskellige hjemmesider på den samme computer, med et skærmkort som muliggør dette !-)
Avatar billede olebole Juniormester
24. marts 2004 - 00:46 #29
Nej, slet ikke  :)
Avatar billede roenving Novice
24. marts 2004 - 00:52 #30
Jamen, så har vi da netop også eet ur !-)
Avatar billede olebole Juniormester
24. marts 2004 - 00:56 #31
Jamen, hvis der skal opdateres data på serveren på bestemte tidspunkter, hjælper det jo ikke meget.
Jeg tror, vi må have noget kvalificeret input fra spørgeren, før vi kan fastslå, hvad der egentlig skal ske - og hvorfor  :)
Avatar billede olebole Juniormester
24. marts 2004 - 00:58 #32
Det, jeg mente var: Det kan godt være, du sidder med fire sider i din browser .... men det gør jeg måske også. Hvis serverens ur bestemmer, opdaterer vores maskiner rimelig samtidigt  ;o)
Avatar billede roenving Novice
24. marts 2004 - 01:05 #33
Ja, men det er jo stort set ligegyldigt, for ifølge jmdahl@23/03-2004 09:07:27 snakker vi om en bestemt computer, som er udstyret med et ret specielt skærmkort, det kan jeg kun fortolke, som at det ikke er noget, som publiceres på internettet på anden måde end til de specielle sites, hvor han/hans firma har opstillet denne konfiguration ...

-- præcis derfor kom jeg til at tænke på det med præsentationen, for det jeg ville finde på at lave var f.eks. et fler-dimensionalt live webcam eller den samme datamængde præsenteret på forskellige måder, men synkront !-)
Avatar billede olebole Juniormester
24. marts 2004 - 01:27 #34
Sidste linie (24/03-2004 00:56:52) ... så slipper vi for at diskutere resten af natten noget, ingen af os ved noget positivt om  :)
Avatar billede jmdahl Nybegynder
24. marts 2004 - 12:47 #35
Imponerende med al den aktivitet. Jeg tester jeres forslag og vender tilbage med en evaluering. Noget tyder på at eksperten.dk er en god idé:-)
Avatar billede jmdahl Nybegynder
22. april 2004 - 10:53 #36
Så er jeg tilbage, efter at have været begravet af andre ting.
Jeg har implementeret kommentaren fra thesurfer og det ser ud til at virke fint. Vil dog gerne give både thesurfer og roenving point efter 60/40, da begge aktivt har scriptet. Sender I et svar, så Point kan gives?
Avatar billede roenving Novice
22. april 2004 - 11:32 #37
Velbekomme '-)
Avatar billede thesurfer Nybegynder
22. april 2004 - 17:05 #38
Yeps. Takker for points. :-)
Avatar billede roenving Novice
23. april 2004 - 19:09 #39
-- og tak for points ;~}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester