2010-02-25 7 views
5

Je souhaite actualiser une page à une heure spécifique.Actualiser une page à une heure spécifique dans ASP.NET

De http-equiv="refresh" content="30" la page est actualisée très 30 secondes, mais je veux actualiser la page à l'heure spécifique. la page est actualisée à 1h30 de chaque jour.

+1

Quel est votre objectif, veuillez expliquer le scénario? – theklc

+1

Oui, car sans comprendre l'objectif, c'est un peu déroutant. Vous seriez dépendant du navigateur étant ouvert, l'heure locale de la machine, etc, etc ... – Kitson

Répondre

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

Ensuite, utilisez simplement cette valeur pour remplir la balise meta refresh. Bien sûr, leur navigateur peut ne pas rester ouvert aussi longtemps et/ou le navigateur peut ne pas supporter de grandes valeurs.

0

L'actualisation de la page signifie l'envoi d'une requête au serveur. Vous pouvez écrire un service Windows qui envoie une requête à votre page tous les jours à 1h30.

3

Vous pouvez utiliser javascript pour créer un compte à rebours qui commence lorsque la page est chargée dans le navigateur?

Ajouter ceci à votre page:

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

Vous pourriez probablement pirater quelque chose ensemble en ligne pour obtenir le nombre de millisecondes jusqu'à 13h30. Sinon, il suffit de créer une méthode simple dans votre codebehind ...

0

Je vous suggère d'utiliser JavaScript sur le chargement de la page pour calculer le décalage horaire entre maintenant et quand vous voulez charger la page suivante. Puis définissez un délai (window.setInterval) pour se produire à ce moment-là. Ensuite, vous pouvez définir le "emplacement" JavaScript sur la même page et charger la page presto à l'heure planifiée.

Jakob m'a battu dessus! :)

0

temps de serveur mis ceci:

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

pour le temps en fonction du client utiliser la méthode setTimeout javascript.

+0

Cela ne fonctionne pas, avez-vous vérifier ce code? :) – Vijjendra

Questions connexes