2010-11-25 7 views
0

J'utilise une page Asp.Net MVC PartialView qui doit appeler un serveur toutes les 5 secondes.

Ceci est la procédure d'action (note renvoie null):

public ActionResult StillOnline() 
    { 
     // bla bla bla 
     return null; 
    } 

Ceci est le javascript HTML censé appeler cette procédure toutes les 5 secondes:

<script src="../../Scripts/jquery-1.4.1.min.js" type="text/javascript"></script> 

<script type="text/javascript"> 
    $(document).ready(function() { 
     setInterval(function { 
         var url = '<%: Url.Action("StillOnline", "Account") %>'; 
         $.getJSON(url, null, null);} 
        , 10000); 
       }); 
</script> 

Avec Chrome ... il exécute l'appel toutes les 5 secondes (yuhuuu) Avec IE ... les appels ne sont exécutés qu'une seule fois.

MESSAGE D'ERREUR: Aucun, IE ne génère PAS d'erreur.

MON BUT: Comme je l'ai dit, j'ai besoin que mon ASP.Net PartialView appelle l'action du serveur toutes les 5 secondes. Aucun retour n'est attendu du serveur.

Peut-être connaissez-vous un meilleur moyen d'y parvenir?

: -)

+0

Que voulez-vous dire par "ne fonctionne pas"? La demande n'est-elle pas envoyée? Rien ne se passe à la réponse, comme des messages d'erreur? (Bien que, pour être juste, la fonction définie n'a aucun paramètre à passer, donc IE pourrait se plaindre à ce sujet.) – Arantor

+0

Avez-vous une erreur pour cela? – Nalum

+0

il commence à avoir des erreurs, il est simplement avalé par le navigateur comme toutes les erreurs dans les DOM même les gestionnaires. –

Répondre

2

Cette

setInterval(function UpdateMyStatus() { 

n'est pas une syntaxe valide. Vous voulez

setInterval(function() { 

Je suis assez sûr que IE jette un message d'erreur pour cela. Toujours vérifier la sortie d'erreur en premier, il vous dira ce qui ne va pas dans la plupart des cas.

+0

J'ai essayé cela et IE appelle maintenant l'action du serveur qu'une seule fois. Chrome l'appelle toujours toutes les 5 secondes. –

+0

@Filu dude, vous avez toujours une erreur de syntaxe évidente là-bas. S'il te plait, fais ce que Pekka t'a dit. –

+0

J'ai supprimé le nom "UpdateMyStatus" (voir le texte du fil initial mis à jour) ..et toujours obtenir un seul appel dans IE. Qu'est-ce que je fais d'autre? –

0
I guess problem is with IE cache, try this out it might help. 


$(document).ready(function() { 
    setInterval(function { 
        $.ajaxSetup ({ cache: false}); 
        var url = '<%: Url.Action("StillOnline", "Account") %>'; 
        $.getJSON(url, null, null);} 
       , 10000); 
      }); 
Questions connexes