2016-01-24 60 views
2

我正在嘗試使用node.js/express.js,並認爲將html文件傳遞給請求而不是僅渲染。我應該流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 

小。

我找到的唯一的con是,我不能像userField響應嵌入EJS數據:「用戶名」使用我的管道就在這種情況下

1 - 是誰?

2-有沒有其他的優點和缺點?

3-我是否過度使用它?我應該只是使用渲染,因爲差異很小,或者與

很大的html,管道實際上節省了一天?

謝謝

回答

2

那些10ms的可能是,它需要真正呈現模板,當你在管路你正在做的方式,模板(發回,不發生一個步驟的時間模板是原樣的,而不是它的渲染形式)。

至少使用EJS呈現模板是一個同步操作:Express需要等待它完成才能發回響應,而且我沒有看到任何可能將流程中呈現的EJS模板流入這種方式可以使得它比僅僅呼叫res.render()更快。

但是,根據我的經驗,它的速度非常快,並且有一些快速設置(如view cache,它在生產環境中啓用並在開發環境中禁用)有助於加快速度。