Jump to content
Zlika

Kill the doc quid de l'ajax ?

Recommended Posts

Bonjour,



Une question qui me taraude !



J'ouvre une page qui déclenche un ajax.


Je clique un lien qui appelle une nouvelle page alors que l'ajax s’exécute.



Que se passe-t-il ?



1) le processus ajax s'arrête


2) le processus aboutit.



Merci pour votre érudition.






Share this post


Link to post
Share on other sites

Les requêtes ajax sont arrétées sur le unload (de mémoire) -> 1 donc,


Share this post


Link to post
Share on other sites

Euh non, si tu envoies une requêtes à un fichier PHP, ce dernier ne s'arrêtera pas même si tu quittes la page.



Le script se fait côté serveur donc normal.


Share this post


Link to post
Share on other sites

Si on parle de processus strictement AJAX, selon SStéphane il serait arrêté.


Mais effectivement, tiens compte de la remarque de Portekoi si derrière l'AJAX, un traitement lourd est effectué côté serveur.


Share this post


Link to post
Share on other sites

Bonjour et merci à vous pour vos réponses,



J'ai passé le cron en post dont l'option async est sur true pas défaut. En fait si je comprends bien le script php lancé en ajax ne s'arrêtera pas


Je vais quand même me faire un test et je reviens vous dire


Share this post


Link to post
Share on other sites

Bonjour,



Pour info


J'ai donc fait un test avec un script ajax qui contient un sleep(20) suivi d'un update en base ! Le script php est éxécuté coté serveur, sur changement de page et sur kill de l'onglet sous FF et chrome.



Bon WE


Share this post


Link to post
Share on other sites

Ca ne confirme que le fait qu'à partir du moment où le script PHP est appelé, il est exécuté jusqu'au bout, comme te l'avait spécifié Portekoi.


Share this post


Link to post
Share on other sites

Tout à fait Captain Torche, c'est l'info que je recherchais !


Je ne me sers pas de l'évènement unload


Qu'y aurait-il d'autre à confirmer ?


Share this post


Link to post
Share on other sites

Ta première question était un peu ambigüe, d'où les deux réponses apparemment contradictoires (Et toutes deux exactes) que tu as reçues :


- Lors de l'exécution du onUnload, les processus AJAX (Donc purement JavaScript) s'arrêtent


- Toutefois, à partir du moment où l'exécution d'un code côté serveur est lancée (PHP ou autre), cette exécution est totalement indépendante du navigateur. Donc, les processus serveur lancés ne s'arrêteront pas


Share this post


Link to post
Share on other sites

Oui je me suis mal exprimé, tout est tué lors du window.unload : ta requête si elle est en cours, l'implémentation de ta méthode onsuccess (success si tu utilises jquery), tes écouteurs, tout.



Il me paraissait évident que si ta requête est passé côté serveur... elle semble difficile à arreter en javascript ... désolé si tu as mal compris.


Si tu cherches à faire ce que tu sembles vouloir... essaie autre chose que l'ajax qui ne suffira pas (mais dans tous les cas, je me demande bien quoi ;) ).


Share this post


Link to post
Share on other sites

Très perspicace SStephane cool2.gif


Ce qui m'a poussé à rédiger ce post c'est effectivement un ajax en solution temporaire d'un script qui ne fonctionne pas en crontab ! ça n'est d'ailleurs pas assez viable donc je retourne dans le crontab lequel est fait pour ça !



Tout est clair ! Merci pour vos contributions, j'ai quand même recalé une brique de base en passant ;-)



Zlika


Share this post


Link to post
Share on other sites

Si tu voulais obtenir ça en web, la seule solution serait le socket avec côté serveur, des appels transactionnels à ta base (rollback si la connexion est coupé avant la fin, commit sinon).


Comme quoi c'est quand même faisable ;)


Share this post


Link to post
Share on other sites

Bien vu cool2.gif Mais je suis un vieux troll qui fonctionne encore sur du MyISAM


C'est problématique sur les modifs de table mais sur select en front avec un bon cache, je tourne à 100 ms sur certaines pages


Mais tu viens de me démontrer l'utilité de l'innodb.... que j'intuitais déjà !



Non j'ai un problème de cron parceque je ne maitrise pas la programmation objet poussée de mon web service, j'ai un problème de chemin que je n'arrive pas à résoudre !


Faut que je prenne des cours et que j'arrête le procédural ! LOL



Bonne soirée


Zlika

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By fbern
      bonjour



      certaines pages de mon site font appel à de l'Ajax pour les avis clients sur mes disques. Google peut indexer désormais ce contenu.

      Quelle directive lui donner ? Canonical mais cela me semble abusif s'agissant que de la moitié de la page, noindex au risque d'en perdre le contenu.

      (si vous me dites de retirer l'Ajax, -), je ne peux pas avant quelques mois !)



      Merci

    • By vince78
      Bonjour à tous,



      voilà mon problème, je souhaite faire appel à une fonction ($(".action_suppression_type_libre")) lors d'un clic sur un div (class="action_suppression_type_libre") d'une autre fonction jquery. ($(".suppressionchamps")). Cela ne fonctionne pas, je ne sais pas comment m'y prendre, j'ai essayé de nombreuses méthodes mais rien y fait, je n'arrive pas à trouver comment faire.



      (en gros, je veux exécuter du jquery au clic sur un élément qui a lui même été créé via du jquery.


      <script>
      $(function() {

      $(".suppressionchamps").click(function(){

      $('#valeur1').html('<div class="action_suppression_type_libre">OUI</div>');

      return false;
      });


      $(".action_suppression_type_libre").click(function(){
      alert('test');

      return false;
      });
      });
      </script>

      <div id="valeur1">
      <span class="suppressionchamps">cliquer ici</span>
      </div>

      Merci d'avance pour votre précieuse aide !

      Vincent





×
×
  • Create New...