KiwiHC16 / Abeille

Abeille pour Jeedom (Gateway ZiGate)
GNU Affero General Public License v3.0
60 stars 52 forks source link

Network Modal, representation graphique: Refresh ne fonctionne pas #292

Closed KiwiHC16 closed 6 years ago

KiwiHC16 commented 6 years ago

Le fichier JSON est bien mis à jour mais pas l affichage. Sous Safari, le refresh ne fonctionne pas même en fermant Safari, il faut faire un clean historique pour avoir le graphe à jour. Sous Firefox, c est un peu la même chose.

KiwiHC16 commented 6 years ago

Salut edgd1er, as tu eu du temps pour regarder ce sujet ?

KiwiHC16 commented 6 years ago

Sur ma nouvelle version de graph, je n'ai pas ce problème.

Du nouveau de ton côté ?

KiwiHC16 commented 6 years ago

Mais je rencontre tres probableent un probleme de cache. Dans ton cas, comme dans le mien je vois qu'on utilise du javascript. Le probleme pour proviens probablement de l utilisation d'AJAX en mode get. Je viens de lire que si l on ne veut pas de cache il faut utiliser AJAX en mode post. Je vais tester avant de confirmer.

edgd1er commented 6 years ago

Salut Kiwi,

pourrais tu envoyer une video du pb, parceque je ne le visualise pas. (vlc permet d'enregistrer l'écran) ?

KiwiHC16 commented 6 years ago

Ok je vais essayer. Quand je fait un "Recalcul du cache" dans la page avec la liste, la progression s'affiche bien et le fichier JSON et créé. Par contre quand je passe à la vue Graphique du réseau, alors le graph est l'ancien (comme si le nouveau JSON n'est pas pris en compte). Comme si le cache du browser web (Safari) affichait les anciennes infos. Il faut que je clean tout l'historique,... de safari pour qu'il affiche le nouveau graph.

KiwiHC16 commented 6 years ago

Ok j'ai le film capture d'ecran 20Mo. Comment je te le partage ?

Dans le film tu peux voir que le graph à 7 equipments, par contre dans le fichier JSON, il n'y en a que 5. Comme si ajax utilisait le cache de ce fichier. Pour GET il faut changer l'URL avec un rand un truc comme get http://IP/xxxxxx/getFile?falseParam=rand ou passer par un POST.

C est comme cela que je résolu mon soucis hier.

KiwiHC16 commented 6 years ago

Tu le trouveras à https://github.com/KiwiHC16/Abeille/blob/master/Documentation/films/CaptureEdgder1er.mov

On l'effacera après.

KiwiHC16 commented 6 years ago

Attention dans le fichier lock (pour partager l avancement, a la fin il n'affiche pas que 'done' mais done avec la date par exemple: "done - Saturday 6th of October 2018 12:00:22 AM"

KiwiHC16 commented 6 years ago

Test ce matin:

Ouverture de la avec Safari: capture d ecran 2018-10-11 a 10 54 40

Ouverture de la liste avec Firefox: capture d ecran 2018-10-11 a 10 55 11

Safari graph pas mis à jour, firefox (que je n'utilise pas) à jour.

KiwiHC16 commented 6 years ago

$.getJSON("plugins/Abeille/Network/AbeilleLQI_MapData.json", function (json) { fait un Get qui est géré par le cache du browser

pour bypasser le cache il faut changer l url, donc j ajoute la date. $.getJSON("plugins/Abeille/Network/AbeilleLQI_MapData.json?"+Date.now()

So we can close

edgd1er commented 6 years ago

le pb c'est qu'en de refresh sur la mm journée, le cache va de nouveau t'embeter non ? je viens de regarder le get peut prendre une option "cache: false", je vais voir si je peux l'integrer demain matin :)

KiwiHC16 commented 6 years ago

Date.now() Le nombre de millisecondes écoulées depuis le premier janvier 1970 à minuit UTC donc a chaque requete il y a u moins un ms qui a passée donc le cache ne devrait pas être utilisé.

edgd1er commented 6 years ago

ok, bon, bon même si ce n'est plus trop utile, j'avais fait le correctif pour faire une requête ajax sans cache, j'ai dupliqué la méthode pour la récup du json.lock cela evitera le hack du date.now() ;)