【问题标题】:How to dynamically send a new number to the client from an express server如何从快递服务器动态向客户端发送新号码
【发布时间】:2012-06-22 14:07:32
【问题描述】:

在快递服务器我有这个。

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

    }

});

在客户端我有这个。

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

所以每一秒都应该显示一个新数字。

但事实并非如此。页面加载时会生成一个新号码,但除非重新加载页面,否则客户端看到的号码始终相同。

如何改变它来做它应该做的事情?

【问题讨论】:

    标签: node.js client-server express ejs


    【解决方案1】:

    您在这里混合了服务器代码和客户端代码。语句&lt;%= dynamicValue %&gt; 将值呈现到页面上的脚本中:

    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>
    

    【讨论】:

    • 然后将服务器代码包含到渲染文件中。这似乎不是一个好方法。还有什么办法?
    猜你喜欢
    • 2022-12-13
    • 1970-01-01
    • 1970-01-01
    • 2013-06-24
    • 2019-04-23
    • 2020-08-01
    • 1970-01-01
    • 2017-01-12
    • 2019-05-27
    相关资源
    最近更新 更多