Scintillement d'une image rafraichit par un UpdatePanel

MasterSpinal Messages postés 3 Date d'inscription samedi 2 avril 2005 Statut Membre Dernière intervention 13 janvier 2009 - 12 janv. 2009 à 15:40
MasterSpinal Messages postés 3 Date d'inscription samedi 2 avril 2005 Statut Membre Dernière intervention 13 janvier 2009 - 13 janv. 2009 à 16:48
Hello all !
Après pas mal de recherche sans réponse sur le web, je viens poser ma question ici, au cas ou l'un d'entre vous aurait soit déjà rencontré ce problème, soit une idée sur la question :

Je travail actuellement sur une application web qui génère des courbes à partie de multiples données.
Ces courbes sont générés en JPG toutes les 5 secondes.
J'utilise un UpdatePanel pour rafraichir la zone dans laquelle les images sont placé.
Mon problème vient d'un scintillement, que je ne souhaite pas, qui a lieu lorsque les images se rechargent toutes les 5 secondes.
Ce que je voudrais c'est que l'image précédente reste affiché tant que l'image suivante n'est pas complètement en cache, cela afin d'éviter les scintillements.

Dans mes recherches j'ai trouvé que la double bufferisation pouvait remédier au problème, mais cela ne s'applique pas à l'UpdatePanel qui est censé être déjà fait pour ça...

Voici mon code si ça peut aider :
xxx.aspx :


   

       
       
       
       
            <contenttemplate>
               
               
               
            </contenttemplate>
            <Triggers>
               
            </Triggers>
   
   

xxx.aspx.cs :


   
private int _depthIncrement = 0;
    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            Web.WebFacade.Current.InitSession();
            DataBind();

            if (Page.IsPostBack)
            {
                object objDepthIncr = Session["DepthIncr"];
                if (objDepthIncr != null)
                {
                    _depthIncrement = Convert.ToInt32(objDepthIncr);
                }
                _depthIncrement++;

            }

            Session["DepthIncr"] = _depthIncrement;
            Image1.ImageUrl = "GetWellLog.aspx" + "?di=" + _depthIncrement.ToString();
            Image2.ImageUrl = "GetWellLog.aspx" + "?di2=" + _depthIncrement.ToString();
         
            this.ErrorLabel.Text = "";
        }
        catch (Exception ex)
        {
            this.ErrorLabel.Text = "Internal Error: " + ex.Message;
        }
    }

Merci de m'avoir lu !

2 réponses

MasterSpinal Messages postés 3 Date d'inscription samedi 2 avril 2005 Statut Membre Dernière intervention 13 janvier 2009
12 janv. 2009 à 15:43
Petite précision : je suis en .NET 2.0 et j'utilise l'extension Ajax.
0
MasterSpinal Messages postés 3 Date d'inscription samedi 2 avril 2005 Statut Membre Dernière intervention 13 janvier 2009
13 janv. 2009 à 16:48
Après une mesure des perfs, je me suis rendu compte que le problème venait de la méthode de génération de l'image qui prenait trop de temps.
Cependant, après correction, le chargement est beaucoup plus rapide, mais il se devine quand même la plupart du temps.
Si jamais vous avez des façons de faire pour éviter ça (mise en cache par le navigateur avant d'afficher les images par exemple), je suis preneur.
0
Rejoignez-nous