Timer, classe
Mise à jour : novembre 2007
Exécute des publications asynchrones ou synchrones de page Web à un intervalle défini.
Assembly : System.Web.Extensions (dans System.Web.Extensions.dll)
[AspNetHostingPermissionAttribute(SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)] [AspNetHostingPermissionAttribute(SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)] public class Timer : Control, IPostBackEventHandler, IScriptControl
/** @attribute AspNetHostingPermissionAttribute(SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal) */ /** @attribute AspNetHostingPermissionAttribute(SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal) */ public class Timer extends Control implements IPostBackEventHandler, IScriptControl
public class Timer extends Control implements IPostBackEventHandler, IScriptControl
<asp:Timer />
Le contrôle Timer vous permet d'exécuter des publications (postback) à un intervalle spécifié. Lorsque vous utilisez le contrôle Timer comme déclencheur pour un contrôle UpdatePanel, le contrôle UpdatePanel est mis à jour en utilisant une mise à jour asynchrone de page partielle. Vous devez inclure un objet ScriptManager dans une page Web pour utiliser le contrôle Timer.
Vous utilisez le contrôle Timer pour mettre à jour un contrôle UpdatePanel en incluant la minuterie à l'intérieur du contrôle UpdatePanel. Vous pouvez également placer la minuterie à l'extérieur du contrôle UpdatePanel et définir la minuterie comme un déclencheur.
Vous pouvez également initialiser la publication complète d'une page Web entière en incluant le contrôle Timer dans la page Web et en ne le définissant pas comme un déclencheur pour un contrôle UpdatePanel.
Vous pouvez exécuter le code de serveur lorsque l'intervalle de la minuterie s'est écoulé en créant un gestionnaire d'événements pour l'événement Tick. Dans le gestionnaire d'événements, vous pouvez inclure un code qui ajuste dynamiquement le comportement du contrôle Timer.
Définissez la propriété Interval pour spécifier la fréquence des publications. Définit la propriété Enabled pour activer ou désactiver le Timer.
Remarque : |
|---|
L'exactitude des temps de publications du contrôle Timer au serveur Web dépend de la précision de la fonction window.setTimeout du ECMAScript (JavaScript) qui s'exécute dans le navigateur. |
La propriété Interval est définie en millisecondes. Vous devez définir la propriété Interval par une valeur qui attend qu'au moins une publication asynchrone se termine avant l'initialisation de la publication suivante. Lorsque le contrôle Timer est à l'extérieur d'un contrôle UpdatePanel, la minuterie continue à fonctionner pendant que le contenu du contrôle UpdatePanel est actualisé. Si une nouvelle publication est initialisée pendant qu'une publication antérieure est traitée, la première publication est annulée. La valeur par défaut est 60,000 millisecondes (60 secondes).
Remarque : |
|---|
L'ajout d'un contrôle Timer de petite valeur à la propriété Interval peut générer un trafic significatif de va-et-vient vers le serveur Web. Utilisez le contrôle Timer pour n'actualiser le contenu que lorsque cela est nécessaire. |
L'exemple suivant montre un contrôle UpdatePanel qui affiche une cotation générée de manière aléatoire ainsi que le moment où celle-ci est générée. Toutes les 10 secondes, le contrôle Timer met à jour le contenu du contrôle UpdatePanel.
Remarque : |
|---|
Dans cet exemple, l'intervalle de la minuterie a pour valeur 10 secondes afin de réduire le temps d'attente de consultation des résultats au moment de l'exécution de l'exemple. Parce que chaque intervalle de la minuterie déclenche une publication qui entraîne du trafic réseau, dans une application de production veillez à définir l'intervalle le plus long possible sans affecter le rendement de votre application. |
<%@ Page Language="C#" AutoEventWireup="true" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>Timer Example Page</title> <script runat="server"> protected void Page_Load(object sender, EventArgs e) { OriginalTime.Text = DateTime.Now.ToLongTimeString(); } protected void Timer1_Tick(object sender, EventArgs e) { StockPrice.Text = GetStockPrice(); TimeOfPrice.Text = DateTime.Now.ToLongTimeString(); } private string GetStockPrice() { double randomStockPrice = 50 + new Random().NextDouble(); return randomStockPrice.ToString("C"); } </script> </head> <body> <form id="form1" runat="server"> <asp:ScriptManager ID="ScriptManager1" runat="server" /> <asp:Timer ID="Timer1" OnTick="Timer1_Tick" runat="server" Interval="10000" /> <asp:UpdatePanel ID="StockPricePanel" runat="server" UpdateMode="Conditional"> <Triggers> <asp:AsyncPostBackTrigger ControlID="Timer1" /> </Triggers> <ContentTemplate> Stock price is <asp:Label id="StockPrice" runat="server"></asp:Label><BR /> as of <asp:Label id="TimeOfPrice" runat="server"></asp:Label> </ContentTemplate> </asp:UpdatePanel> <div> Page originally created at <asp:Label ID="OriginalTime" runat="server"></asp:Label> </div> </form> </body> </html>
- AspNetHostingPermission
pour opérer dans un environnement hébergé. Valeur de la demande : LinkDemand. Valeur d'autorisation : Minimal.
- AspNetHostingPermission
pour opérer dans un environnement hébergé. Valeur de la demande : InheritanceDemand. Valeur d'autorisation : Minimal.
Windows Vista, Windows XP SP2, Windows Server 2003
Le .NET Framework et le .NET Compact Framework ne prennent pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.
Remarque :