2010-02-25 9 views
5

Ich möchte eine Seite zu einem bestimmten Zeitpunkt aktualisieren.Seite zu einem bestimmten Zeitpunkt in ASP.NET aktualisieren

Von http-equiv="refresh" content="30" wird die Seite sehr 30 Sekunden aktualisiert, aber ich möchte die Seite zu einer bestimmten Zeit aktualisiert. Wie die Seite wird jeden Tag um 1:30 Uhr aktualisiert.

+1

Was ist Ihr Ziel, bitte erklären Sie das Szenario? – theklc

+1

Ja, denn ohne das Ziel zu verstehen, ist das ein bisschen verwirrend. Sie wären davon abhängig, dass der Browser geöffnet ist, die lokale Uhrzeit des Computers usw. usw. – Kitson

Antwort

1
DateTime targetDate = ...; 
long secondsTilRefresh = Math.Floor((targetDate - DateTime.Now).TotalSeconds); 

Dann verwenden Sie einfach diesen Wert, um das Meta-Refresh-Tag zu füllen. Natürlich bleibt ihr Browser möglicherweise nicht so lange offen und/oder der Browser unterstützt möglicherweise keine großen Werte.

0

Das Aktualisieren der Seite bedeutet das Senden einer Anfrage an den Server. Sie können einen Windows-Dienst schreiben, der täglich um 1:30 Uhr eine Anfrage an Ihre Seite sendet.

3

Sie könnten Javascript verwenden, um einen Countdown-Timer zu erstellen, der startet, wenn die Seite im Browser geladen wird?

Fügen Sie diese auf Ihrer Seite:

<script language="javascript" type="text/javascript"> 
    setTimeout("window.location = 'yourpage.aspx'", <%= CalcMilisecsToNext130pm() %>); 
</script> 

Sie könnten wahrscheinlich etwas zusammen Inline-Hack die Anzahl von Millisekunden bis 01.30 zu erhalten. Erstellen Sie einfach einfache Methode in Ihrem CodeBehind ...

0

Ich würde vorschlagen, dass Sie JavaScript beim Laden der Seite verwenden, um den Zeitunterschied zwischen jetzt und wann Sie die nächste Seite laden möchten, zu berechnen. Setzen Sie dann ein Zeitlimit (window.setInterval), das zu diesem Zeitpunkt auftritt. Dann können Sie den JavaScript - "Standort" auf die gleiche Seite einstellen und die Presto - Seite zum geplanten Zeitpunkt laden.

Jakob hat mich dazu geschlagen! :)

0

Serverzeit setzen diese:

<% DateTime dte = DateTime.Now; %> 
<meta http-equiv="refresh" content="<%=86400 - (((dte.Hour * 60) + dte.Minute) * 60) %>"> 

für Client-basierte Zeit JavaScript SetTimeout Methode verwenden.

+0

Dies funktioniert nicht, haben Sie diesen Code überprüft? :) – Vijjendra

Verwandte Themen