我应该流式传输 html 文件而不仅仅是渲染吗?



我正在试验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:"用户名"

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

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

3-我是否矫枉过正?我应该只使用渲染,因为差异很小,或者连接速度慢

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

谢谢

这 10 毫秒可能是实际渲染模板所需的时间,当您以您正在执行的方式管道模板时不会发生这一步骤(按原样发送回模板,而不是其渲染形式)。

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

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

相关内容

  • 没有找到相关文章

最新更新