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 :

Détection d'une perte de lien avec Ajax


Sujet :

ASP.NET

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2007
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 35
    Points : 21
    Points
    21
    Par défaut Détection d'une perte de lien avec Ajax
    Bonjour,

    Je suis donc entrain de développer un site web en ASP.NET, mais j'ai un petit problème. En fait, pour simuler du "temps réel" et conserver un lien avec le serveur je procède avec Ajax (Dojo pour les connaisseurs) de la manière suivante:

    - Une requète Dojo (donc Ajax) appelant le serveur et attendant sa réponse avec un timeout énorme (de l'ordre de plusieurs heures).
    - Un script ASP bouclant (avec une pause de 1 seconde chaque fois) et vérifiant les entrés en base de données. Lorsque qu'il lit une entré bien particulière, il va sortir de la boucle et la renvoyer à la requète Ajax.

    Le problème étant que si je ferme le navigateur web mon script ASP va continuer de tourner jusqu'au timeout du serveur (s'il y en a un, je ne touche pas vraiment à la config serveur) et donc utiliser des ressources pour rien.
    J'aimerais donc détecter la perte de "lien" avec le client et Ajax.

    J'aurais pu utiliser du javascript directement avec onBeforeUnload(), mais celle-ci ne fonctionne pas lorsqu'on ferme le navigateur et tuant le processus. Et j'ai préfère mettre ce type de traitement coté serveur pour alléger un maximum le client.

    Existe-t-il une solution Asp.NET?

    Merci

  2. #2
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 512
    Points
    9 512
    Par défaut
    Salut,

    Il existe IsClientConnected.

    A+

  3. #3
    Membre à l'essai
    Inscrit en
    Novembre 2007
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 35
    Points : 21
    Points
    21
    Par défaut
    Bonjour et merci pour ta réponse Immobilis.
    Maheureusement, j'ai le cadre d'un test mis le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while (Response.IsClientConnected)
    {
        System.Threading.Thread.Sleep(1000);
    }
    J'ai ensuite mis un point d'arrêt sur mon thread et la valeur de Response.isClientConnected est toujours à true, même lorsque je changeais de page sur mon site ou fermais mon navigateur. Je ne savais pas trop l'utiliser et j'ai donc suivi l'exemple de la documentation, à savoir aucun déclaration de Response, je suppose que c'est un objet se créant seul dans le Page_Load.

    J'en viens donc à me demander s'il est vraiment possible de faire cette détection. J'ai pensé que oui parce que la requête Ajax va attendre un retour du serveur et donc, je pense, maintenir la connexion, mais je ne suis pas sûr de moi.

    Merci encore

  4. #4
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 512
    Points
    9 512
    Par défaut
    Peut-être que cela fonctionne correctement dans un environnement différent de celui de visual studio.

    Perso, j'aurai eu tendance à répéter la requête ajax toutes les x secondes pour voir si le process est fini. Du genre AJAX s'adressant à ton serveur:
    1 - Est-ce que tu peux me calculer ça?
    2 - Est-ce que tu as fini?
    3 - Est-ce que tu as fini?
    4 - Est-ce que tu as fini?
    5 - Est-ce que tu as fini?
    n - ....
    n + 1 - Ah tu as fini. Je continue mon process alors.
    Le serveur vérifie que le client lui demande toutes les secondes.

    Enfin cela semble un processus bizarre. C'est pour quoi faire exactement?

    A+

Discussions similaires

  1. [AJAX] Envoyer une valeur par get avec AJAX
    Par beegees dans le forum AJAX
    Réponses: 1
    Dernier message: 21/03/2009, 12h57
  2. [AJAX] Construction d'une galerie d'images avec Ajax
    Par Pmko01 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 17/01/2008, 16h32
  3. Socket et détection d'une perte de connexion
    Par Tigrounette dans le forum Entrée/Sortie
    Réponses: 6
    Dernier message: 27/09/2007, 19h36
  4. Détection d'une mise à jour faite avec VB
    Par vcattin dans le forum Access
    Réponses: 2
    Dernier message: 28/12/2006, 08h47
  5. [AJAX] Passage d'une variable très longue avec AJAX
    Par Figaro83 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 18/09/2006, 16h53

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