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 :

[ASP.NET, C#] Lancer un process asynchrone et attendre le résultat


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    231
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2004
    Messages : 231
    Par défaut [ASP.NET, C#] Lancer un process asynchrone et attendre le résultat (edit ajax)
    Bonjour,

    J'ai une question concernant un process asynchrone qui doit être lancer via une application ASP.NET.

    J'exécute le process et mon seul moyen de savoir s'il est terminé (succès ou échec) c'est de faire un SELECT d'un champ qui contient 3 valeurs possibles : "en cours", "succès" ou "erreur".

    Pendant que ma boucle tourne (avec un timeout que je définis par exemple à 30 secondes); j'aimerai avoir une espèce d'écran d'attente avec soit un message "process en cours" soit un gif animé qui montre un chargement.

    Voici le contexte:
    - Un popup (window.showModalDialog()) s'ouvre
    - Dans le Page_Load je lance le process via mon backgroundworker
    - La page ne s'affiche QUE lorsque le process est terminé : timeout, succès ou erreur

    Sur une application C# aucun soucis de faire ce genre de chose, mais sur une application web ASP.NET c'est totalement différent, la page reste blanche ou ne s'affiche que lorsque le process est terminé. D'un autre côté c'est compréhensible, le process est lancé, le client attend la réponse du serveur... Mais existe-t'il une solution qui puisse satisfaire ma demande ? Sans entrer dans les techno AJAX & co, je suis un peu pressé par le temps en fait.

  2. #2
    Membre émérite Avatar de bizet
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2005
    Messages
    717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 717
    Par défaut
    Citation Envoyé par dinbougre Voir le message
    Bonjour,
    Sans entrer dans les techno AJAX & co, je suis un peu pressé par le temps en fait.
    Je pense que tu ne vas pas avoir le choix et devoir utiliser l'AJAX.
    Tu verras l'Ajax en ASP.NET, c'est pas trop compliqué.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    231
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2004
    Messages : 231
    Par défaut
    Ok

    Bon pour l'instant (j'ai annoncé que ce serait prêt pour demain) je m'oriente vers une solution "bricolage" en ayant un popup qui se rafraichit toutes les secondes et qui fait la vérif... J'ai trouvé ça sur le forum

    Ensuite faut je regarderai pour Ajax (j'en ai aussi besoin dans un autre projet)


    Merci

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    231
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2004
    Messages : 231
    Par défaut
    UP !

    Bon alors j'ai laissé tombé ma méthode de bourrin (refresh par META-refresh toutes les 1 seconde).
    Je suis en train de tenter avec AJAX.

    Quelqu'un peut m'éclairer à ce sujet ?
    Voilà ce que j'ai fais (après avoir lu quelques docs)

    Defaut.aspx
    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
     
    function getXhr()
    {
    	var xhr = null;
     
    	if(window.XMLHttpRequest) 
    	{
    		xhr = new XMLHttpRequest();
    	}
    	else if(window.ActiveXObject)
    	{ 
    		try 
    		{
    			xhr = new ActiveXObject("Msxml2.XMLHTTP");
    		} 
    		catch (e) 
    		{
    			xhr = new ActiveXObject("Microsoft.XMLHTTP");
    		}
    	}
    	else 
    	{ 
    		alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
    		xhr = false;
    	}
     
    	return xhr
    }
     
    function go()
    {
    	var xhr = getXhr();
     
    	xhr.onreadystatechange = function()
    	{			
    		if(xhr.readyState == 4 && xhr.status == 200)
    		{
    			alert("OK");
    		}
    	}
    	xhr.open("GET", "Script.aspx", true);
    	xhr.send(null);
    }
    Sctip.aspx
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        protected void Page_Load(object sender, EventArgs e)
        {
    		System.Threading.Thread.Sleep(1000);
        }
    Dans mon Defaut.aspx, j'ai un bouton ASP qui exécute ma fonction go().
    Si j'ai bien compris AJAx, je peux via mon click sur bouton, envoyer une requête au serveur, et le temps que celui ci réponde (mais comment ?), je passe ma page Defaut.aspx en mode "wait" avec une icone par exemple. Et quand Script.aspx répond favorablement, hop il reprend la main et process terminé ?

    Mais je dois faire quoi exactement dans mon Script.aspx, dans mon cas ?

  5. #5
    Membre émérite Avatar de bizet
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2005
    Messages
    717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 717
    Par défaut
    salut

    je pense que tu ne devrais pas tant te compliquer la tache en créant tes objets XML.

    Essaie de regarder du coté des composants UpdatePanel et co.

    Avant j'avais un bon tuto dessus mais je ne le retrouve pas, mais commence deja a regarder ca. Ca te permettre a de faire de l'ajax beaucoup plus simplement.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    231
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2004
    Messages : 231
    Par défaut
    Ok merci

  7. #7
    Membre émérite Avatar de bizet
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2005
    Messages
    717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 717
    Par défaut
    Citation Envoyé par bizet Voir le message

    Avant j'avais un bon tuto dessus mais je ne le retrouve pas, mais commence deja a regarder ca. Ca te permettre a de faire de l'ajax beaucoup plus simplement.
    le "ca" correspondait au tuto que j'ai oublié de joindre!! Mea Culpa

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. lancer un autre thread depuis une page ASP.net
    Par Arthis dans le forum ASP.NET
    Réponses: 9
    Dernier message: 11/12/2009, 14h24
  2. Je ne peux plus lancer mes projets ASP.NET
    Par webworker dans le forum Visual Studio
    Réponses: 0
    Dernier message: 21/03/2009, 18h21
  3. Réponses: 7
    Dernier message: 16/04/2008, 16h42
  4. Lancer une application asp.net
    Par mikawell3000 dans le forum ASP.NET
    Réponses: 4
    Dernier message: 23/08/2007, 09h23
  5. WebService Asynchrone et ASP.NET
    Par ostenhard dans le forum Services Web
    Réponses: 17
    Dernier message: 27/07/2007, 17h03

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