【问题标题】:Should I stream html files instead of just render?我应该流式传输 html 文件而不仅仅是渲染吗?
【发布时间】:2016-01-24 11:26:47
【问题描述】:

我正在尝试使用 node.js/express.js,并考虑将 html 文件传递​​给请求,而不仅仅是渲染。

我希望能达到更好的性能,并且第一次加载html文件会更快。

//instead of
res.render('form',{title:'Login',userField:'Username',passField:'Password',photo: photo});

//I do
var path  = 'views/form.ejs';
var stream = fs.createReadStream(path);
stream.pipe(res);
This is actually about 10ms faster, even with a small file (385 bytes). I am developing so my files are still really 

小。

我发现的唯一问题是我无法在响应中嵌入 EJS 数据,例如 userField:'Username'

1- 在这种情况下我使用的是正确的管道吗?

2- 还有其他优点和缺点吗?

3- 我是不是矫枉过正了?我应该只使用渲染,因为差异很小,还是与

的连接速度很慢

大型 html,管道实际上节省了一天?

谢谢

【问题讨论】:

    标签: node.js express stream response


    【解决方案1】:

    这 10 毫秒可能是实际渲染模板所需的时间,当您以您正在做的方式管道模板时不会发生这个步骤(它按原样发回模板,并且不是它的渲染形式)。

    至少使用 EJS 渲染模板是一个同步操作:Express 需要等待它完成才能发回响应,而且我看不到以某种方式流式传输渲染的 EJS 模板的任何可能性这将比仅仅调用res.render() 更快。

    但是,根据我的经验,它非常快,并且有一些 Express 设置(例如 view cache,在生产环境中启用,在开发环境中禁用)有助于加快速度。

    【讨论】:

      猜你喜欢
      • 2011-03-08
      • 1970-01-01
      • 1970-01-01
      • 2019-02-12
      • 1970-01-01
      • 2019-11-25
      • 2012-05-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多