2010-03-31 28 views
3

Je fais long sondage avec JSONP et firefox apparaît continuellement le spinner "Chargement" rendant la page semble comme il n'a pas fini de charger. Y a-t-il un moyen de supprimer cela?JSONP longue interrogation toujours en cours de chargement

On m'a dit que l'équipe Orbited a des hacks pour supprimer cela, mais en regardant à travers le code Orbited.js je ne peux pas comprendre ce qu'ils sont. Toute aide serait grandement appréciée.

Répondre

5

Ceci est une solution simple .. Tout ce que vous devez faire est de commencer votre demande de vote avec un setTimeout ..

Voici un code que j'utilise .. Il utilise jQuery, mais je suppose que vous pouvez comprendre ce que vous devez et utilisez votre bibliothèque pour faire la même chose.

<script type="text/javascript"> 
    function poll(){ 
    $.getJSON('/updates', function(json){ 
     //reconnect since we successfully received data and disconnected 
     poll(); 

     //add something here to do whatever with the recieved data 
    }); 
    } 
    /*call the poll function after document has loaded with setTimeout 
    if called before the document finishes loading completely it will 
    cause a constant loading indication*/ 
    setTimeout(poll, 1); 
</script> 
+0

C'est la meilleure solution, j'ai essayé même avec $ (document) .ready ou doc.addEventListener ("DOMContentLoaded", ...), mais à moins que vous attendez au moins 1ms cela ne fonctionnera pas. à votre santé –

2

Je n'ai pas de réponse, mais j'ai une suggestion d'alternative. Quelqu'un d'autre vient de poser une question similaire et here's my answer. Fondamentalement, si vous avez le contrôle du serveur, la solution la plus simple consiste à utiliser les en-têtes de partage de ressources d'origine croisée pour XMLHttpRequest interdomaines OK et revenir à JSONP sur les anciens navigateurs.

J'ai fourni une table de compatibilité raisonnablement complète (tous les navigateurs compatibles avec les scripts utilisateurs) pour CORS dans le cadre de la réponse à laquelle je me suis connecté, ainsi qu'une plus générale on Wikipedia.