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 :

[C#] Affichage de la page avant d'executer le code


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif Avatar de Pynouz
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 274
    Par défaut [C#] Affichage de la page avant d'executer le code
    Bonjour,

    Je cherche un moyen pour que ma page s'affiche avant que le code ne s'execute.

    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
    protected void Page_Load(object sender, EventArgs e)
            {
                Session["MenuAccueil"] = String.Empty;
                Session["MenuHistorique"] = String.Empty;
                Session["MenuProfil"] = String.Empty;
                Session["MenuDeconnexion"] = String.Empty;
     
                if (!Fct.Securité.VérificationAuthentification(Session))
                {
                    FormsAuthentication.RedirectToLoginPage();
                }
                else
                {
                    try
                    {
                        Algorithmes.AlgorithmeIn();
                    }
                    catch (Exception exception)
                    {
                        if (exception.Message != "Le fichier envoyer n'est pas du texte.<br /> Veuillez vérifier la conformité de celui-ci.")
                        {
                            Outils.BugReport.Signaler("Le traitement n'a pas pu aboutir à cause d'un problème technique.", Priorité.Elevée, exception);
                            Session["Erreur"] = "Le traitement n'a pas pu aboutir à cause d'un problème technique.<br/>" + exception.Message + "<br/>. L'équipe technique en a été automatiquement informé.";
                        }
                        else
                        {
                            Session["Erreur"] = exception.Message;
                        }
                        Response.Redirect("Accueil.aspx");
                    }
                }
            }
    J'appel une fonction Algorithme.AlgorithmeIn() et je voudrais que celle-ci s'effectue une fois que l'utilisateur vois la page.

    Je ne sais pas si j'ai été clair. N'hésitez pas à me demandé plus d'infos si besoin est.

    Je vous remercie

  2. #2
    Membre Expert Avatar de Er3van
    Homme Profil pro
    Architecte Logiciel
    Inscrit en
    Avril 2008
    Messages
    1 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte Logiciel
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 430
    Par défaut
    A ma connaissance ce n'est pas faisable en ASP.Net... pourquoi ce besoin ?

  3. #3
    Expert confirmé

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Par défaut
    Bon, en fait, en faisant un peu de vaudou .Net, on peut (soit en faisant de l'asynchrone, soit en utilisant des Response.Flush) afficher la page avant la fin des traitements serveurs...

    Après, ce n'est pas forcément la solution, je plussoies la question d'Er3van

    Mon Blog

    The Cake is still a lie !!!



    Vous voulez contribuer à la rubrique .NET ? Contactez-moi par MP.
    Vous voulez rédiger des articles pour la rubrique .NET ? Voici la procédure à suivre.

  4. #4
    Membre très actif Avatar de Pynouz
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 274
    Par défaut
    Merci de vos réponses,

    J'ai besoin de ceci car je choisi un fichier à uploader à partir de ma page "Accueil" par le composant FileUpload et une fois celui-ci choisit je commence donc l'upload et le traitement par un alogorithme plus ou moins long selon le fichier.

    Pour faire patienter l'utilisateur pendant le transfert et l'éxécution de l'algorithme, j'ai crée une page "Chargement" avec une animation. J'appel donc ma fonction AlgorithmeIn() dans le load de cette page mais mon problème est que la page s'affiche une fois que toutes les instructions contenues dans le load de la page sont effectuées.

    Je cherche donc une alternative afin que l'éxécution de ma fonction Algorithme s'effectue une fois la page "Chargement" affiché.

  5. #5
    Expert confirmé

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Par défaut
    Ok, dans ton cas, le mieux, c'est probablement le response.flush

    Tu peux faire qq chose comme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Response.Clear();
     
    Response.Write("Vos données sont en cours de traitement, veuillez patienter..." );
    Response.Flush();
    MonOperationTresLongue();
    Response.Flush();
    Note, si ton utilisateur uploade un fichier de 200 Mo, il ne verra rien tant que le fichier n'a pas été transféré.

    Dans ce cas, le plus simple est de changer ton filupload par un AsyncFileUpload (http://www.asp.net/AJAX/AjaxControlT...ileUpload.aspx), et de gérer les evenements javascript (onclientuploadstarted/completed/error) pour afficher/masquer des divs sur la page, indiquant a ton utilisateur que le traitement est en cours

    Mon Blog

    The Cake is still a lie !!!



    Vous voulez contribuer à la rubrique .NET ? Contactez-moi par MP.
    Vous voulez rédiger des articles pour la rubrique .NET ? Voici la procédure à suivre.

  6. #6
    Membre très actif Avatar de Pynouz
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 274
    Par défaut
    D'accord,

    Je vais essayer le contrôle AsyncFileUpload. Je pense qu'il conviendra parfaitement étant donnée que j'ai une animation en javascript afin de faire patienter l'utilisateur.

    Je vous tiens au courant dès que j'ai mis la solution en place.

Discussions similaires

  1. script s'execute avant l'affichage de la page
    Par dvechamb dans le forum ASP.NET
    Réponses: 3
    Dernier message: 18/03/2012, 00h26
  2. Executer du code avant un changement de page
    Par Luke58 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 18/08/2009, 09h56
  3. Image d'attente avant affichage de la page
    Par Xenon03 dans le forum Général Conception Web
    Réponses: 3
    Dernier message: 02/03/2009, 11h15
  4. [JDIC] modifier la page avant affichage
    Par iuz dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 16/07/2006, 15h36
  5. [MySQL] Affichage page si requete executer
    Par Nicos77 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 09/12/2005, 15h47

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