【问题标题】:node.js express rendering inside included js filesnode.js 在包含的 js 文件中快速渲染
【发布时间】:2013-10-30 15:33:05
【问题描述】:

假设我有一个简单的观点

<html>
  <head>
    <title>something</title>
  </head>
  <body>
  <%= param %>
  </body>
  <script type="text/javascript" src="myscript.js"></script>
</html>

这里是myscript.js

$(function() {
  var p = <%= param %>
}

我可以在myscript.js 中制作快速渲染引擎(在本例中为ejs)渲染吗?

【问题讨论】:

  • 有什么理由不能使用静态 javascript 文件和动态 JSON?
  • @giaour 你能详细说明一下吗?
  • 不通过渲染引擎传递你的 JavaScript 会加速你的页面,因为视图渲染消耗资源和浏览器积极缓存静态文件。如果您的 javascript 文件中唯一改变的是 param 的值,那么您可以通过其他方式将其输入到您的页面中——通过让您的脚本发出由 Express 处理的 AJAX 请求或将它们插入到任何页面上的内联脚本标记都使用您的脚本。
  • 谢谢你,有道理。虽然我不会进行 AJAX 调用,但它的 i/o 开销也可能比渲染更大,但你可能是对的,使脚本内联......

标签: javascript node.js express ejs


【解决方案1】:

我不相信 express 会触及您的静态文件。您可以将其设为从路由渲染和提供服务的视图,如下所示:

app.get('/js/myscript.js', function(req, res) { 
    res.render('myscript'); 
});

使用正则表达式路由,您可以使用以.js 结尾的任何内容来执行此操作。 (在任何人投反对票之前,请注意我说的是可以,而不是应该。)

不过,将静态 javascript 提供给使用从 Express 提供的 JSON 数据的浏览器可能会更好。

【讨论】:

  • 为此 +1。 “不过,将静态 javascript 提供给使用 Express 提供的 JSON 数据的浏览器可能会更好”
  • 我怎么能用非静态的js呢?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-10-30
  • 1970-01-01
  • 1970-01-01
  • 2020-04-13
  • 2019-02-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多