2 pièce(s) jointe(s)
Actualiser un div toutes les x secondes en JS
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:
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:
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:
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:
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)
Pièce jointe 613116
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)
Pièce jointe 613117
Franchement je ne comprends pas
Quelqu'un aurait-il une idée ?
Merci d'avance et bon weekend à toutes et à tous :)
Cordialement,
Derko.