2016-03-30 18 views
0

Node.jsサーバーを設定して現在のCPU使用率を示すページを表示していますが、問題は現在ページ全体をリフレッシュする必要があることですJavaScriptを使って変数を更新するだけでは、ページを更新した直後に正しいCPU使用率が表示されますが、間隔が経過すると「未定義」が出力されます。Node.js、Express、EJS - 出力する変数をリフレッシュするページ

のNode.jsコード:

var cpuusage = 0; 
var percent = require('cpu-percent'); 
percent(function(err,percent){ 
    if(err) { }else{ 
     cpuusage = Math.round(percent); 
    } 
}); 

^がEJSテンプレート

default.ejsコードに値を代入

app.get("/", function (req, res) { 
    res.render("default.ejs", { 
     "cpu":cpuusage 
    }); 
}); 

^現在のCPU使用率を取得:

<b>CPU</b>: <span id="showCpu"><%= cpu %></span>% <br> 
<script> 
    function updateCPU(){ 
     document.getElementById("showCpu").innerHTML="<%= cpu %>"; 
    } 
    setInterval("updateCPU()", 2000); 
</script> 

^Outpu変数値を変更してスパンを更新する

答えて

1

setIntervalを間違った方法で呼び出すと、最初の引数が関数であると考えられます。

setInterval(updateCPU, 2000); 

ところで、CPU使用率を更新する場合は、x秒後にページを更新するだけです。または、JSON形式のCPU使用率を返すCPUエンドポイントを作成し、x秒後にこのエンドポイントにヒットして、CPU使用率を更新せずに更新します。

関連する問題