1

エクスプレスサーバーにはこれがあります。

app.dynamicHelpers({
    dynamicValue: function(req, res) {
        console.log("returning a new value");
        return parseInt(Math.random() * 100);

    }

});

クライアントにはこれがあります。

setInterval(function() {
        alert(<%= dynamicValue %>);
        }
        ,1000);

したがって、毎秒、新しい番号が表示されるはずです。

しかし、それは起こりません。ページが読み込まれると新しい番号が生成されますが、ページがリロードされない限り、クライアントに表示される番号は常に同じです。

これをどのように変更して、本来あるべきことを行うことができますか?

4

1 に答える 1

1

ここでは、サーバー コードとクライアント コードを混在させています。このステートメント<%= dynamicValue %>は、値をページ上のスクリプトにレンダリングします。

setInterval(function() {
  alert(<%= dynamicValue %>);
}
,1000);

になる

setInterval(function() {
  alert(82.9090561);
}
,1000);

このスクリプトは、後でブラウザによって解釈されます。ブラウザは「サーバー スクリプト コード ベース」にアクセスできません。

クライアントでこれを機能させるには、ページに乱数を作成する特定のスクリプトを含める必要があります。

<script type="text/javascript" src="dynamic.js" />

<script type="text/javascript">
  setInterval(function() {
    alert(smth.dynamicValue());
  }
  ,1000);
</script>
于 2012-06-22T14:19:41.283 に答える