Sur mon site Web, j'utilise une fonction jquery ajax longue interrogation. Cet appel ajax dans cette fonction a un délai de 50 secondes, puis s'exécute à nouveau, en attente de modifications sur le serveur. Toutefois, la connexion http à interrogation longue s'arrête parfois. Cela se produit par exemple lorsque la connexion Internet est coupée ou lorsque le PC client est allumé après la mise en veille ou en veille prolongée. Le problème avec ceci est que le rappel "complet" ne se produit pas encore, la fonction $ .ajax() attend toujours le délai, alors que la connexion http n'existe plus.Vérifier si une connexion d'appel ajax/http est active
Comment vérifier avec jquery/javascript si la connexion est toujours ouverte?
Ceci est mon long script Poller:
function longPoller() {
$.ajax({
type: "GET",
url: '/longpolltest2.php',
dataType: 'json',
async: true,
cache: false,
timeout:50000, /* Timeout in ms */
success: function(data){
alert('success');
},
error: function(XMLHttpRequest, textStatus, errorThrown){
alert('error');
},
complete: function() {
alert('complete');
longPoller(); // restart long poller request
}
});
}
@jAndy, j'ai mis à jour le script, mais je reçois l'erreur suivante:
Permission refusée à http://domain.com pour créer wrapper pour objet de classe UnnamedClass
function masterLongPollerDebugger() {
xhr = $.ajax({
type: "GET",
url: '/longpolltest2.php',
dataType: 'json',
async: true,
cache: false,
timeout:50000,
success: function(data){
alert('success');
},
error: function(XMLHttpRequest, textStatus, errorThrown){
alert('error');
},
complete: function() {
alert('complete');
masterLongPollerDebugger();
}
});
}
function ajaxRunning() {
xhr._onreadystatechange = xhr.onreadystatechange; // store a reference
xhr.onreadystatechange = function()
{ // overwrite the handler
xhr._onreadystatechange(); // call the original stored handler
alert(xhr.readyState);
if (xhr.readyState === 3)
alert('Interactive');
};
}
J'ai mis à jour le message original pour plus d'informations. Je reçois une erreur: ** Permission refusée à http://domain.com de créer un wrapper pour l'objet de classe UnnamedClass ** – koen