J'essaie de recharger un fichier JSON toutes les 10 secondes avec jQuery.
La page est ici: http://moemonty.com/chirp/chirp.html p>
Le code est ici: p> Il ne semble pas travailler. p> p>
4 Réponses :
Je m'attendrais à ce que la boucle ... pour quelques raisons. Tout d'abord, à l'aide de la référence de fonction plutôt que d'une chaîne de code est une meilleure idée en général, et le second éteint, vous êtes tout à fait certain que vous obtenez la bonne référence de fonction (alors que la chaîne que vous obtenez dépend du contexte dans lequel le code est exécuté). p> mais comme point de signalé dans un commentaire, il y a un problème distinct: settimeout code> appeler à:
document.write code> ne fera probablement pas ce que vous voulez probablement . Vous ne pouvez utiliser que
document.write code> pour écrire sur le flux HTML qui est analysé dans le cadre de la charge de la page d'origine. Après la charge de la page, vous ne pouvez plus l'utiliser. Pensez à utiliser JQuery's
Ajoutez code>
ou APPENDTO CODE>
et des fonctions similaires à ajouter à la charge de la page DOM. P> P>
Vous avez une erreur dans console.log (data.query.results.json); code> - console n'est pas défini.
De plus, vous pouvez utiliser
setingerval ("fonction ()", 5000); code>. P>
console code> sera défini sur beaucoup de navigateurs (Firefox, Chrome, ...) et non sur IE. Je suppose que s'il l'utilise, il utilise un navigateur où il est soutenu.
Juste pour être plus précis, si vous utilisez seinterval, appelez-le sur le document prêt, pas à l'intérieur de la fonction elle-même.
Vous voulez probablement que l'ensemble précédent des données retournées remplacées par le nouvel ensemble, au lieu de l'ajouter. Dans ce cas, utiliser jQuery, vous pouvez faire: etc ... p> p>
Bonne réponse, mais settimeout ("loadchirp ()", 5000); code> devrait être
Settimeout (Loadchirp, 5000); code> Il n'est presque jamais approprié de transmettre une chaîne dans
Settimeout code> ou
seinterval code>.
La question était de recharger toutes les 10 secondes, de sorte que cela devrait être: setInterval (Loadchirp, 10000);
Devrait être SettimeOut (Loadchirp, 10000); sans () ou "" sur la fonction Loadchirp. Appeler la fonction avec exécution "()" devrait libérer une récursion horrible.
Est-ce considéré comme une chose chère à faire ou à la normale? J'ai une situation similaire dans laquelle j'ai besoin de mettre à jour une table lorsqu'un bouton de lecture est enfoncé et il doit continuer à obtenir les données de l'API jusqu'à ce que le bouton STOP soit enfoncé (c'est-à-dire s'il y a de nouvelles données sur le Web. service).
Vous devez absolument utiliser: p>
setInterval ("Loadchirp", 10000): P> blockQuote>
N'écrivez pas LoadCrirp () à l'intérieur de seinterval car nous ne faisant que passer une réfrence p>
"N'écrivez pas LoadCrirp () à l'intérieur de seinterval car nous ne faisons que passer une réfrence" i> alors pourquoi votre exemple passe-t-il toujours une chaîne? Vous devez supprimer les citations pour transmettre une référence à la fonction; Sinon, seinterval code> évaluera la chaîne, qui n'aura aucun effet (il n'appellera pas la fonction, par exemple).
ne semble pas fonctionner i> n'est pas une description de problème très précis. Quel est le résultat attendu, quel est le résultat réel (message d'erreur, code d'état HTTP)?
Bien ce que fait i> se produit?
De plus, même si le code de délai d'expiration fonctionnait, je ne pense pas que tous ces
document.write code> feront ce que vous voulez qu'ils fassent.