Bonjour,
J'aimerai actualiser le contenu d'un <div> toutes les 5sec en JavaScript (c'est la première fois que je me lance dans JS. J'ai lu des cours et effectué je ne sais combien de recherches depuis 3 jours).
Pour cela, j'ai écrit le code suivant dans ma page index.php à force de recherches :
Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64 <!DOCTYPE html> <html lang="fr"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <title>My Server</title> <script type="text/javascript"> function refresh_div() { setInterval(refreshDiv, 5000); } function refreshDiv() { document.getElementById('fonctionPerfServ'); console.log(fonctionPerfServ); } </script> </head> <body onLoad="refresh_div()"> <!-- DEBUT Affichage des Performances du serveur --> <div class="row" id="fonctionPerfServ"> <?php include("fonctions/perfServer.php"); $perfs = perfServer(); ?> <div class="col-xl-4 col-sm-6 grid-margin stretch-card"> <div class="card"> <div class="card-body"> <h4 class="card-title">Network Used</h4> <?php echo $perfs[0].' Octets / Seconde'; ?> </div> </div> </div> <div class="col-xl-4 col-sm-6 grid-margin stretch-card"> <div class="card"> <div class="card-body"> <h4 class="card-title">CPU Used</h4> <?php echo $perfs[1].' %'; ?> </div> </div> </div> <div class="col-xl-4 col-sm-6 grid-margin stretch-card"> <div class="card"> <div class="card-body"> <h4 class="card-title">RAM Used</h4> <?php echo $perfs[2].' %'; ?> </div> </div> </div> </div> <!-- FIN Affichage des Performances du serveur --> </body> </html>
Pour plus de clarté, voici ma fonction perfServer() (qui fonctionne parfaitement) :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 <?php function perfServer() { // On lance le script PowerShell perfServer.ps1 qui va écrire la commande Get-Counter dans le fichier perfServ_LOG.txt $output = shell_exec('powershell -executionpolicy remotesigned -command "& {"fonctions/perfServer.ps1"; exit $err}"'); // Le fichier texte $txt_file = 'fonctions/perfServer_Log.txt'; // Variable permettant de parcourir le fichier texte $lines = file($txt_file); // On parcourt le fichier texte ligne par ligne foreach ($lines as $num=>$line) { // Si la ligne = 5 alors on obtient la valeur de consommation du réseau if($num == 5) { $reseau = $line; $reseau = trim($reseau); //$reseau = substr($reseau,0,3); } // Si la ligne = 8 alors on obtient la valeur de consommation du processeur elseif($num == 8) { $processeur = $line; $processeur = trim($processeur); //$processeur = substr($processeur,0,3); } // Si la ligne = 11 alors on obtient la valeur de consommation de la RAM elseif($num == 11) { $ram = $line; $ram = trim($ram); //$ram = substr($ram,0,3); } } // On récupère les valeurs dans un tableau $perfServer = array($reseau, $processeur, $ram); // On retourne le tableau return $perfServer; } ?>
Pour encore plus d'infos, voici mon fichier perfServer.ps1 appelé par ma fonction perfServ() :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 $varCheminRepertoireScript = [System.IO.Path]::GetDirectoryName($MyInvocation.MyCommand.Definition) $currentScriptName = $MyInvocation.MyCommand.Name #Récupération du nom du script en cours #On ne prend que le nom du script sans l'extention. Pour cela on chercher la position d'un point en partant de la droite et on prend tout ce qui est à sa gauche $currentScriptName = $currentScriptName.substring(0,$($currentScriptName.lastindexofany("."))) #Création du fichier vierge $EmplacementFichier = "$varCheminRepertoireScript\$($currentScriptName)_Log.txt" $MonFichier = New-Item -type file $EmplacementFichier -Force Get-Counter | out-file $MonFichier
Et enfin, mon fichier texte perfServer_LOG.txt créée par mon perfServer.ps1 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 Timestamp CounterSamples --------- -------------- 05/02/2022 18:14:52 \\monPC\interface réseau(intel[r] ethernet connection [2] i219-v)\total des octets/s : 1078331,00728607 \\monPC\processeur(_total)\% temps processeur : 25,5405828147069 \\monPC\mémoire\pourcentage doctets dédiés utilisés : 52,5155239627965 \\monPC\mémoire\défauts de cache/s : 0 \\monPC\disque physique(_total)\pourcentage du temps disque : 0 \\monPC\disque physique(_total)\taille de file dattente du disque actuelle : 0
Lors de la première arrivée sur index.php, ma fonction perfServer() est bien appelée et les données sont bien transmises dans le tableau et affichées dans mes différents sous-div. (Cf. Image ci-dessous)
La console m'affiche bien le <div id="fonctionPerfServ"> toutes les 5sec. Mais le contenu visuel, sur mon index.php, ne change pas. (Cf. Image ci-dessous)
Franchement je ne comprends pas
Quelqu'un aurait-il une idée ?
Merci d'avance et bon weekend à toutes et à tous
Cordialement,
Derko.
Partager