IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

refresh d'un label avec un flash


Sujet :

ASP.NET

  1. #1
    Membre confirmé Avatar de thierry007
    Homme Profil pro
    Autodidacte
    Inscrit en
    Août 2006
    Messages
    876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2006
    Messages : 876
    Points : 457
    Points
    457
    Par défaut refresh d'un label avec un flash
    Bien le bonjour a tous

    voici ci-dessous le code d'une page en test dans la quelle je mets un label ( label1), qui doit m'indiqué l'heure en continu, mais lors de refresh toutes les sec, toute la page fait un flash et c'est pas tres agréable dois-je dire. Si quelqu'un vois le pourquoi, j'en serais bien heureux ....


    partie VB
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      Protected Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
                Label1.Text = DateTime.Now.ToLongTimeString()
     
          End Sub


    partie ASP
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    <%@ Page Language="vb" AutoEventWireup="false" CodeBehind="Default.aspx.vb"%>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
     
     
        <style type="text/css">
            .style1
            {
                width: 100%;
                border-collapse: collapse;
     
            }
        </style>
    </head>
    <body  background="Images/Background_black.jpg">
        <form id="form1" runat="server">
        <div>
     
            <table cellpadding="0" class="style1">
                <tr>
                    <td>
                        &nbsp;</td>
                    <td style="width: 1024px">
                        <br />
                        <asp:Timer ID="Timer1" runat="server" Interval="1000">
                        </asp:Timer>
                        <br />
                        <asp:ScriptManager ID="ScriptManager1" runat="server">
                        </asp:ScriptManager>
                        <br />
                        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                            <ContentTemplate>
                                <asp:Label ID="Label1" runat="server" style="color: #FFFF66" Text="Label"></asp:Label>
                            </ContentTemplate>
                        </asp:UpdatePanel>
                        <br />
                        <br />
                        <br />
                    </td>
                    <td>
                        &nbsp;</td>
                </tr>
                <tr>
                    <td style="vertical-align: top; text-align: right;">
                        &nbsp;</td>
                    <td style="background-position: center top; width: 1024px; background-image: url('Images/1024x900.png'); background-repeat: no-repeat; height: 900px; vertical-align: top;">
     
                    </td>
                    <td>
                        &nbsp;</td>
                </tr>
                <tr>
                    <td>
                        &nbsp;</td>
                    <td style="width: 1024px">
                        &nbsp;</td>
                    <td>
                        &nbsp;</td>
                </tr>
                <tr>
                    <td>
                        &nbsp;</td>
                    <td style="width: 1024px">
                        &nbsp;</td>
                    <td>
                        &nbsp;</td>
                </tr>
            </table>
     
        </div>
        </form>
    </body>
    </html>
    La Connaissance est comme la joie elle s'accroît en la partageant!

  2. #2
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Points : 3 102
    Points
    3 102
    Par défaut
    Bonjour,

    ta page est intégralement rechargée à chaque mise à jour du label... D'où le flash.
    Il va falloir passer par de l'Ajax (JQuery, AjaxControloolkit ou un bon vieux javascript) si tu veux éviter cela.

  3. #3
    Membre confirmé Avatar de thierry007
    Homme Profil pro
    Autodidacte
    Inscrit en
    Août 2006
    Messages
    876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2006
    Messages : 876
    Points : 457
    Points
    457
    Par défaut
    la fonction UpdatePanel n'est pas là pour éviter cela?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                            <ContentTemplate>
                                <asp:Label ID="Label1" runat="server" style="color: #FFFF66" Text="Label"></asp:Label>
                            </ContentTemplate>
                        </asp:UpdatePanel>
    La Connaissance est comme la joie elle s'accroît en la partageant!

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    262
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 262
    Points : 95
    Points
    95
    Par défaut
    Si tu places le timer dans le updatepanel ?

  5. #5
    Membre confirmé Avatar de thierry007
    Homme Profil pro
    Autodidacte
    Inscrit en
    Août 2006
    Messages
    876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2006
    Messages : 876
    Points : 457
    Points
    457
    Par défaut
    et bien le problème est le même
    La Connaissance est comme la joie elle s'accroît en la partageant!

  6. #6
    Membre chevronné

    Profil pro
    Chef de Projet / Développeur
    Inscrit en
    Juin 2002
    Messages
    599
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de Projet / Développeur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2002
    Messages : 599
    Points : 2 024
    Points
    2 024
    Par défaut
    Étonnant que le Timer dans le ContentTemplate ne règle pas le problème.

    J'ai regardé une de mes vieilles pages, mon ScriptManager a 2 propriétés en plus du tien : EnableScriptGlobalization="True" EnablePageMethods="True".
    Je ne sais pas si cela a un lien.

    Essai de gérer un Bouton plutôt qu'un Timer pour voir si c'est les événements lié à ce dernier qui ne sont pas compatibles.

    Mais je rejoins quand même calagan99 : utiliser ASP.Net pour la tâche que tu décris n'est pas une bonne solution ; javascript serais meilleurs.

    Chaque personne qui consultera ta page, va générer une requête vers ton serveur (et donc le solliciter) toutes les secondes, alors que le boulot peut très facilement être fait par le client (en javascript donc). Même si la page n'est que partiellement rafraichie (ce qui évite le flash), la page est quand même chargé en entier, coté serveur, et si mes souvenirs sont exacts, le Page_Load est exécuté à chaque fois.

    Si tu devais afficher des données liés à un SGBD, ce serais différents - et encore ... perso, je ferais une WebMethod appelée par JQuery.

    D'une façon générale, même si l'Ajax Control Toolkit continue sa petite vie, Microsoft pousse beaucoup jQuery.

    cf : http://www.asp.net/ajaxlibrary/cdn.ashx

    Certes cela oblige à maitriser javascript (dont l'absence était le dogme de départ de Microsoft Ajax/Atlas), mais c'est terriblement plus efficace que de solliciter le serveur pour un oui ou pour un non.

    Cordialement
    --
    vanquish

  7. #7
    Expert confirmé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 065
    Points : 4 229
    Points
    4 229
    Par défaut
    Bizarre mois quand je fais ça j'ai aucun problème de rechargement de la page:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                            <ContentTemplate>
                                <asp:Timer ID="Timer1" runat="server" Interval="1000" OnTick="Timer1_Tick">
                                </asp:Timer>
                                <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
                            </ContentTemplate>
                        </asp:UpdatePanel>

  8. #8
    Membre confirmé Avatar de thierry007
    Homme Profil pro
    Autodidacte
    Inscrit en
    Août 2006
    Messages
    876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2006
    Messages : 876
    Points : 457
    Points
    457
    Par défaut
    merci vanquish pour les explications je vais a mon avis me retourner vers cette solution.
    Pour l'allégement des requêtes serveur déjà.

    je vais aussi regarder la solution de youtpout978
    merci aussi
    La Connaissance est comme la joie elle s'accroît en la partageant!

Discussions similaires

  1. [HARDWARE] Probleme avec le Flash disk USB 128Mo
    Par cool47keeng dans le forum Composants
    Réponses: 4
    Dernier message: 21/04/2007, 21h01
  2. [FLASH 8] Pb de label avec clip
    Par nounetmasque dans le forum Flash
    Réponses: 4
    Dernier message: 24/08/2006, 16h11
  3. Réponses: 3
    Dernier message: 23/05/2006, 20h17
  4. [MFC] label avec une police qui s'ajuste
    Par romeo9423 dans le forum MFC
    Réponses: 7
    Dernier message: 15/03/2005, 14h27
  5. [VB.NET] - Probleme Label avec Database
    Par codez dans le forum ASP.NET
    Réponses: 4
    Dernier message: 03/06/2004, 17h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo