Dans le code ci-dessous, j'utilise la fonction jQuery ajax() pour effectuer un appel longpolling. Pendant que la fonction ajax fonctionne, je clique sur le lien pour télécharger Firefox (par exemple) et l'appel ajax s'arrête.L'appel ajax jQuery s'arrête lorsqu'une invite de téléchargement est affichée
Il agit en fait comme si l'appel était réussi, mais ce n'était pas le cas, il a simplement cessé de fonctionner.
Pourquoi est-ce? Je veux fonctionner pour continuer ...
J'ai vu ce problème dans Firefox et Chrome. Je n'ai pas testé d'autres navigateurs.
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
function longPoller() {
$.ajax({
type: "GET",
url: '/long-loading-page.php', /* <?php sleep(5000); ?> */
dataType: 'json',
async: true,
cache: false,
timeout:50000,
success: function(data){
alert('success');
},
error: function(XMLHttpRequest, textStatus, errorThrown){
alert('error');
},
complete: function() {
alert('complete');
}
});
}
$(document).ready(function(){
setTimeout(function(){ longPoller() }, 1000); //start the longPoller() function
});
</script>
</head>
<body>
<a href="http://download.mozilla.org/?product=firefox-3.6.9&os=win&lang=en-US">download Firefox! (clicking this link will stop the jQuery ajax call... why?)</a>
</body>
</html>
Merci. Les deux options fonctionnent. Je me demande pourquoi le rappel de succès est déclenché cependant. – koen
Avait besoin de confirmation que ces méthodes fonctionneraient avant que je ne l'ai programmé réellement, merci! – Reimius