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

AJAX Discussion :

[AJAX] Ajax vraiment asynchrone ?


Sujet :

AJAX

  1. #1
    Membre averti
    Inscrit en
    Juin 2008
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 13
    Par défaut [AJAX] Ajax vraiment asynchrone ?
    Bonjour,
    ma société utilise un forum qui envoie un grand nombre de mails à chaque nouveau message, le pb c'est que ça met bc de temps et que l'utilisateur qui poste se trouve bloqué pendant plus d'une minute (voir bc plus parfois).
    J'ai voulu passer cet envoi en ajax, donc l'utilisateur ajoute son message et une requête ajax est postée au serveur pour envoi des mails. Le pb c'est que même si je suis bien redirigé je ne peux rien faire tant que les mails sont en cours d'envoi.
    Pourtant j'envoie bien en asynchrone donc je devrais pouvoir continuer à travailler pendant que le serveur envoie les mails non ?
    Sinon je suis ouvert à toute autre idée pour envoyer les mails sans bloquer l'utilisateur.
    Merci

  2. #2
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut
    Salut,

    Il faut déjà savoir que les requêtes AJAX sont limitées en nombres (entre 2 et 4 par défaut), ce qui pose peut-être souci dans ton cas.

    Mais ici tu es plutôt confronté à un problème d'architecture: est ce vraiment de la responsabilité de ce traitement Ajax d'envoyer des mails en nombre et de finir son exécution plus d'une minute plus tard ? Le but d'ajax c'est d'intéragir ponctuellement avec le server pour envoyer/recevoir des compléments d'informations. A mon avis ton script AJAX devrait enregistrer les informations nécessaires et retourner. Ensuite un script de traitement type CRON devrait être lancé à intervalle régulier pour envoyer les mails en attente. Ainsi personne n'est bloqué.


    ERE

  3. #3
    Membre averti
    Inscrit en
    Juin 2008
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 13
    Par défaut
    En fait y'a juste une requête ajax qui ensuite boucle sur les destinataires du mail.
    En fait mon pb c'est que je ne peux pas avoir la main sur grand chose, sur la base notamment, donc je voulais faire au max avec l'archi existante. Après si je dois passer par un script d'envoi je devrais sans doute le faire en ASP, est-ce que ça ne va pas altérer les perfs su serveur pendant l'envoi ?
    Comment ça se passe en règle générale pour un forum ? les mails sont envoyés à l'aide d'un script à intervalle régulier ?

  4. #4
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut
    Citation Envoyé par Marquo2 Voir le message
    En fait y'a juste une requête ajax qui ensuite boucle sur les destinataires du mail.
    En fait mon pb c'est que je ne peux pas avoir la main sur grand chose, sur la base notamment, donc je voulais faire au max avec l'archi existante. Après si je dois passer par un script d'envoi je devrais sans doute le faire en ASP, est-ce que ça ne va pas altérer les perfs su serveur pendant l'envoi ?
    Comment ça se passe en règle générale pour un forum ? les mails sont envoyés à l'aide d'un script à intervalle régulier ?
    Je comprends bien ton problème. Mais de toute façon si l'envoi des mails altère les perfs du server, cela ne change rien que cela soit pendant la requête AJAX ou après, de manière distincte (découplée): cela altèrera les perfs. Ensuite concernant le forum, tout dépend de la volumétrie. A toi de voir, mais de toute façon si tu maitrises pas l'architecture cela me semble vite réglé.

    ERE

  5. #5
    Membre averti
    Inscrit en
    Juin 2008
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 13
    Par défaut
    Pour certains messages ça peut atteindre 700 mails. Dans les forums je n'ai jamais remarqué des temps énormes lors de l'ajout d'un message comme pour mon intranet et je ne sais pas comment ils font. T'as une idée de la manière dont ils envoient les mails ?

  6. #6
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut
    Citation Envoyé par Marquo2 Voir le message
    Pour certains messages ça peut atteindre 700 mails. Dans les forums je n'ai jamais remarqué des temps énormes lors de l'ajout d'un message comme pour mon intranet et je ne sais pas comment ils font. T'as une idée de la manière dont ils envoient les mails ?
    Ils envoient les mails par paquets (plusieurs destinataires pour un seul mail).

    ERE

  7. #7
    Membre Expert Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Par défaut
    Ceci étant dit, ce n'est pas normal qu'avec un requete asynchrone le client soit bloqué, il doit y avoir un problème dans le code.

  8. #8
    Membre chevronné
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Mars 2006
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Mars 2006
    Messages : 400
    Par défaut
    Citation Envoyé par Marquo2 Voir le message
    Bonjour,
    ma société utilise un forum qui envoie un grand nombre de mails à chaque nouveau message, le pb c'est que ça met bc de temps et que l'utilisateur qui poste se trouve bloqué pendant plus d'une minute (voir bc plus parfois).
    J'ai voulu passer cet envoi en ajax [...]
    Ton problème concerne un traitement côté serveur (envoi de mails) n'ayant aucun rapport avec le client (les actions de l'utilisateur ne dépendent pas de l'envoi de ces mails; le client est seulement averti de la réussite ou non de l'insertion du nouveau message). La résolution de ce problème devrait donc se situer uniquement du côté serveur.

    La technologie AJAX permet de faire interagir client et serveur, ce n'est donc pas une bonne solution au problème.
    Imagine qu'une fois le message envoyé, l'utilisation perd (volontairement ou non) la connexion avec le serveur. Dans ce cas, aucun script côté client ne sera exécuté, et le serveur n'enverra donc pas les mails.

    Pour l'envoi des mails, au lieu d'envoyer directement les mails, tu peux par exemple les enregister dans une base de données ou un simple fichier, et avoir un second script qui se charge d'envoyer les mails.
    De cette manière, l'utilisateur n'a plus à attendre l'envoi des mails, et ce point de la problématique est résolu.

    Reste la question d'appeler ce script.
    Tu peux avoir une tâche planifiée qui appelle ce script à intervalle régulier, ou déclancher le script d'envoi des mails de manière non bloquante à partir du script d'insertion des messages.
    En tout cas, cela n'est plus un problème lié à AJAX, et je te conseille de poser la question sur les forums liés aux serveurs.

Discussions similaires

  1. [AJAX] AJAX ASYNCHRONE incompréhensible
    Par doubi_dim dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 20/03/2008, 11h44
  2. [AJAX] Ajax doit on vraiment proposer une alternative ?
    Par Overstone dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 01/08/2007, 11h53
  3. [AJAX] Ajax requêtes asynchrones simultanées
    Par jiber2fr dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 27/07/2007, 23h39
  4. [AJAX] AJAX Asynchrone ne fonctionne pas
    Par linar009 dans le forum Général JavaScript
    Réponses: 23
    Dernier message: 16/03/2007, 10h11
  5. [AJAX] Ajax pas asynchrone
    Par crazy dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 11/03/2007, 18h45

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