Interrompre un chargement Ajax

Interrompre un chargement Ajax - HTML/CSS - Programmation

Marsh Posté le 09-03-2009 à 14:42:53    

Hello à tous,  
 
sur une page web, j'ai un appel Ajax qui nécessite un petit temps de calcul avant d'afficher le résultat retourné le script php. Le problème c'est que si je clic sur un lien situé sur la page, le navigateur attend que la requête Ajax soit terminée pour suivre le lien cliqué.
 
Est-il possible d'outrepasser cela ?
 
Merci beaucoup.


---------------
Un être en tant qu'être ne pourrait-il pas être autre qu'il n'est s'il n'explique pas lui-même son être ?
Reply

Marsh Posté le 09-03-2009 à 14:42:53   

Reply

Marsh Posté le 09-03-2009 à 17:50:46    

Code :
  1. xhr.abort();

je crois

Reply

Marsh Posté le 10-03-2009 à 02:11:18    


Et je le mets où ? En fait il est plutôt là mon problème :)


---------------
Un être en tant qu'être ne pourrait-il pas être autre qu'il n'est s'il n'explique pas lui-même son être ?
Reply

Marsh Posté le 11-03-2009 à 13:02:27    

J'ai quelque chose comme ça, mais ça ne marche pas vraiment (même pas du tout) :)
 

Code :
  1. xhr_object.onreadystatechange = function() {
  2.  if(xhr_object.readyState == 4) {
  3.   //alert(xhr_object.responseText); // DEBUG MODE
  4.   if (xhr_object.responseText == 0) {
  5.    xhr_object.abort();
  6.   }...


---------------
Un être en tant qu'être ne pourrait-il pas être autre qu'il n'est s'il n'explique pas lui-même son être ?
Reply

Marsh Posté le 11-03-2009 à 13:13:21    

ca me parrait louche ta solution greeeg :)
 
ca serait pas plutot definition de ta variable xhr_object accessible de partout, et dans la fonction qui a besoin (ie lors d'un clic sur un lien) tu lances la ligne xhr_object.abort(); ?
 
Pas testé, par contre donc je ne certifie rien :D


---------------
http://poemes.iceteapeche.com - http://www.simuland.net
Reply

Marsh Posté le 11-03-2009 à 13:49:25    

fluminis a écrit :

ca me parrait louche ta solution greeeg :)
 
ca serait pas plutot definition de ta variable xhr_object accessible de partout, et dans la fonction qui a besoin (ie lors d'un clic sur un lien) tu lances la ligne xhr_object.abort(); ?
 
Pas testé, par contre donc je ne certifie rien :D


En fait il n'y a qu'un seul appel Ajax dans cette page. Mais mettre un onclick sur tous les liens de la page me semble un peu rédhibitoire, non ?


---------------
Un être en tant qu'être ne pourrait-il pas être autre qu'il n'est s'il n'explique pas lui-même son être ?
Reply

Marsh Posté le 11-03-2009 à 13:58:17    

possible de jouer avec onunload ?

Code :
  1. window.onunload = function() {
  2.    if(xhr != NULL) {
  3.        xhr.abort();
  4.    }
  5. }


Message édité par Profil supprimé le 11-03-2009 à 13:58:43
Reply

Marsh Posté le 11-03-2009 à 16:09:18    

greeeg a écrit :


En fait il n'y a qu'un seul appel Ajax dans cette page. Mais mettre un onclick sur tous les liens de la page me semble un peu rédhibitoire, non ?


 
J'avais déjà oublié le début de la question quand j'ai répondu. Je parlais juste d'une solution pour un bouton "Stop!" qui arreterait la requete.
 
Si tu veux faire ca sur tous les liens, tu as raison, un onClick ca va etre chiant a mettre en place.
 
En jQuery, tu peux facilement faire un truc ressemblant à ça, non ?
Comme ça tu automatise le procedé sur toutes tes pages sans soucis.

Code :
  1. $('a').bind("click", function(e){
  2.   if (xhr_object != undefined) {
  3.     xhr_object.abort();
  4.   }
  5. });


---------------
http://poemes.iceteapeche.com - http://www.simuland.net
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed