0
votes

Utilisez JavaScript pour rafraîchir une fenêtre après que la boucle a effectué son cours

J'écris un affichage de nouvelles pour la société que je travaille et j'essaie d'obtenir la page à rafraîchir après sa mise en boucle à travers toute la longueur d'une matrice JSON. Actuellement, tout fonctionne, mais je ne suis pas tout à fait sûr où se déroulerait la commande d'actualisation. Où il se trouve pour le moment ne pas exécuter. Voici mon code pertinent:

p>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id='news'>
  <ul></ul>
</div>


2 commentaires

si (d [i]> = d.length) { devrait probablement être si (i> = d.length) {


La première chose à laquelle je peux voir qu'il existe une déclaration de retour suivie d'un code dans le même bloc (dans la fonction de mise à jour après la récupération). Donc, le retour est d'arrêter d'exécuter la fonction.


3 Réponses :


-1
votes

Si je vous ai dit question, il vous suffit de savoir où votre fonction de rechargement est correcte?

Eh bien c'est window.location.rarod ();


1 commentaires

Je me suis trompé. J'ai besoin de savoir où il irait à l'actualisation de la page après la course de la boucle. Actuellement, la commande window.location.location () n'exécute pas du tout. Je veux que cela puisse recharger quand le tableau a été bouclé à travers



0
votes
$.getJSON('info.json?ver=' + Math.floor(Math.random() * 100), function(data){
    //your code
}).done(function( data ) {
    window.location.reload();
});
Function written in done section will be executed after complete all code from main function

1 commentaires

L'emplacement de la fonction .done (fonction (données (données) { est à l'origine de la page de rafraîchir immédiatement sans exécuter la fonction de mise à jour () pour boucler la matrice.



0
votes

Je l'ai compris dans une direction que je prévoyais à l'origine. Je me suis rendu compte qu'une fois que j'ai inclus une RNG pour le contrôle de la version à mon fichier .json, je n'avais pas besoin de rafraîchir la page. J'utilise une boucle itérative, alors une fois la boucle terminée, elle remonte au sommet et re-ouvre le info.json . Mon rng ressemble à ceci: xxx

Cela signifie que chaque fois $. Getjson est calé, il regarde un numéro de version différent de celui qu'il a précédé, ce qui oblige à Vérification du serveur et téléchargement, qui conserve les choses dans le fichier à la mise à jour de l'écran. Les sources de réseau ressemblaient à ceci: xxx

définitivement pas la solution que je cherchais, mais c'est en fait une solution meilleure que ma question aurait pu demander.


2 commentaires

Juste une suggestion - au lieu d'utiliser un nombre aléatoire, vous pouvez utiliser un horodatage; quelque chose comme 'info.json? t =' + date.now () . De cette façon, le nombre sera toujours unique. L'utilisation d'un nombre aléatoire a une chance (bien que minimale puisque vous utilisez deux) d'utiliser le même numéro deux fois, tirant ainsi une copie en cache du fichier JSON. Ou définissez le serveur pour envoyer un en-tête NON-cache pour les fichiers JSON dans le répertoire. En ce qui concerne le rechargement, quelque chose comme si (i> = d.length) {window.location.rélectionnez (); } juste après l'incrémentation du i dans update pourrait fonctionner, mais qui ne garantit pas JSON tiré du serveur.


Vous avez raison et j'ai mis à jour mon code pour l'utiliser à la place. Je crains que la saisie d'un horodatage aléatoire sera mieux que de demander à la Broswer de faire des mathématiques deux fois. De plus, avec un nombre unique d'un nombre unique, des choses vont un peu mieux dans l'actualisation. Merci pour la suggestion!