2010-05-06 3 views
3

J'ai joué avec .load() et .ajax(), mais je n'ai pas fini. Voici ce dont j'ai besoin: Chaque minute, la fonction doit vérifier si elle peut charger une certaine page. Si la connexion réussit, je veux que la page soit rafraîchie, sinon, rien ne doit arriver, le script doit réessayer plus tard. J'utilise le plugin jQueryTimers. c'est mon code jusqu'ici:Comment puis-je actualiser une page via jQuery et m'assurer qu'il y a une connexion?

//reload trigger 
$(document).everyTime('60s', 'pagerefresh', reloadPage, 0, true); 

//refresh function 
function reloadPage() { 
    $.ajax({ 
     url:'index-1.php', 
     type:'HEAD', 
     success: location.reload(true) 
     }) 
} 

Je n'ai aucune idée comment dire à jQ ce que je veux. n'importe quel indice apprécié.

Répondre

9

En écrivant success: location.reload(), dont vous appelez reload immédiatement, et définissant le paramètre success aux tout reload rendements (qui est undefined)

Vous devez utiliser une fonction anonyme qui appelle reload comme le rappel success, comme celui-ci :

success: function() { location.reload(true); } 
+0

merci pour votre aide! cela m'a aidé, la page est immédiatement chargée quand je me reconnecte au net. – Steve

+0

fait. Je veux suivre ma question, alors je me suis posté une réponse. ou comment puis-je affiner ma question ici sur stackoverflow? – Steve

+0

Vous pouvez éditer votre question ou en demander une nouvelle. – SLaks

0

grâce à SLaks, jQuery tentatives de recharger maintenant. Cependant, si je débranche le câble Internet du PC, il efface l'écran et ne déclenche pas l'erreur. voici ma nouvelle tentative:

$.ajax({ 
     url:'index.php', 
     type:'HEAD', 
     success: function() { location.reload(true); }, 
     error: function() {$('DIV').append('<p>ERROR</p>');} 
     }) 
+1

Ajoutez un nombre aléatoire à l'URL pour éviter la mise en cache ('url: 'index.php' + Math.random()') – SLaks

+0

Aussi, installez [Firebug] (http://getfirebug.com), remplacez 'location.reload 'avec' console.log (arguments) ', et vérifiez ce qui se passe dans l'onglet Console lorsque vous débranchez la connexion. – SLaks

+0

cool, merci, j'aime l'approche .. BTW: J'utilise Opera Libellule;) – Steve

Questions connexes