Timer pour appli Web [Résolu]

Signaler
Messages postés
4
Date d'inscription
mardi 7 novembre 2000
Statut
Membre
Dernière intervention
2 février 2007
-
poussein
Messages postés
4
Date d'inscription
mardi 7 novembre 2000
Statut
Membre
Dernière intervention
2 février 2007
-
Bonjour a tous,

Je suis tt nouveau dans le developpement en .net et malgre mes diverses recherches, je me retrouve face à un petit soucis.
Le voici :

Dans l'idée, je veux faire une simple image qui change ttes les n secondes.
J'ai donc recherché des exemples utilisants les timers et ttes utilisent using System.Windows.Form.Timer ;
De mon coté, a chaque fois que je rajoute cette expression, je me prends un message d'erreur me detectant un pb de référence assembly. J'imagine donc que cette classe n'est accessible que lors d'un developpement d'une appli système...

Jusque la, j'ai bon ???

Je me suis donc retourné vers un using system.Timers ... Pourquoi pas, vu qu'il me le prend a la compil, je me suis dit que c'etait pas forcement mauvais. Je declare bien mon objet, je le lance, lui mets des bons arguments... Et la, impossible de recupérer le déclenchement (ou peut etre le declencher... j'en sais rien, rien ne se passe). Voici un bout de mon code. J'imagine que le soucis est assez simple, mais avec mes connaissances,c a me depasse. Qq'un aurait il une idée ???

D'avance, merci

using System.Timers;

public partial class ma_classe: System.Web.UI.Page
{
 
    //Declaration du timer
    System.Timers.Timer aTimer = new System.Timers.Timer(); 

    protected void Page_Load(object sender, EventArgs e)
    {
    }

    protected void ImageMap1_Load(object sender, EventArgs e)
    {
         // ici je recupere mes valeurs d'init pour le timer et mes valeurs sont bonnes

        //chargement des paramètres du timer
        aTimer.Interval = gb_timer;
        aTimer.AutoReset = true;
        aTimer.Start();
        lbl_msg.Text = "start";
      
    }

// voici mes deux tentative pour recupérer l'évènement, mais jamais j'y passe...

      public void aTimer_Elapsed(object sender, EventArgs eArgs)
    {
        lbl_msg.Text = "essai 1";
        Console.WriteLine("essai 1");

    }
    public void aTimer_Tick(object sender, EventArgs eArgs)
    {
        lbl_msg.Text = "essai 2";
        Console.WriteLine("essai 2");

    }

6 réponses

Messages postés
4
Date d'inscription
mardi 7 novembre 2000
Statut
Membre
Dernière intervention
2 février 2007

j'ai bien étudié la question et vu que j'ai besoin de recupérer des données relatives aux images cliquées, pour les introduire dans une base de données je vais prendre la voie d'AJAX. Le transfert de données entre javascript et ASP va se transformer en une veritable usine a gaz..

 J'ai été sur ton blog ou il y a pas mal d'info notemment le petit lien vers le Hands On Labs en Francais...

@+ et encore merci.
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
32
oui... mais ça c'est une question web, donc on la pose sur www.aspfr.com

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
Messages postés
4
Date d'inscription
mardi 7 novembre 2000
Statut
Membre
Dernière intervention
2 février 2007

Oups, Dsl....
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
18
Bonjour,

ASP.net s'execute sur le server, ton code fait un timer sur l'execution de la page (quelques millisecondes) donc tu verras rien coté client il faut utiliser javascript pour faire un timer client ... Tu peux aussi utiliser le control timer d'atlas (http://ajax.asp.net) qui va te générer du js pour faire des aller retour client/serveur ... mais dans ton cas tu n'as peut etre pas besoin d'un aller retour client/serveur (très couteux) un simple bout de javascript devrait suffire.

<hr />Cyril - MVS - MCP
Messages postés
4
Date d'inscription
mardi 7 novembre 2000
Statut
Membre
Dernière intervention
2 février 2007

Salut,

Tt d'abord merci pour ta reponse.

Dans ma tete le code s'executait coté serveur, il envoyait la page au client, et lorsque mon timer, coté serveur se declenchait, j'aurai pu réactualiser ma page coté client et ainsi changer mon image.. Mais si j'ai bien compris, ce n'est pas ca du tout :  une fois le code exécuté sur le serveur, il est envoyé chez le client et a part une action du client (comme une validation ou actu...) le serveur n'agit plus sur cette page...
Et si j'avais voulu que mon timer se declenche, il aurait fallu qu'il ait un temps de declenchement inférieur à l'éxécution de ma page coté serveur (ce qui, je te l'accorde ne m'aurait servi a rien, mais c'est juste pour la compréhension...)

Je vais donc regarder avec un javascript, et en meme temps le controle timer d'AJAX (ca pourra toujours servir.
Pendant que je te tiens, je voualis te remercier et te féliciter pour tte l'aide que tu apportes aux novices comme moi de via tes réponses sur le forums, ou tes sources exemples.

Merci donc
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
18
oui c'est exactement ca :-) le protocole http ne fonctionne que dans un sens :)

Pour l'aide que j'apporte, en ce moment ce n'est pas trop vrai en ce moment par manque de temps :-( :-)

<hr />Cyril - MVS - MCP