我对使用引擎模板还很陌生,需要一些帮助。
我正在使用EJS模板引擎来呈现我的HTML,并且想知道它是否本质上可以首先呈现HTML页面,然后呈现我的数据。
例如:
我有一个页面渲染如下,该页面渲染在其数据对象中调用一个函数:
res.render(root + "/pages/home/home.ejs", {
data: render()
});
此render()函数非常繁琐,需要几秒钟才能完成。我想知道我是否可以先提供HTML文件,然后在完成后允许数据异步传递到页面?
我也想避免这样做:
render().then(data => {
res.render(root + "/pages/home/home.ejs", {
data: data
})
})
我应该使用的任何建议或其他模板引擎都会很有帮助。
答案 0 :(得分:0)
您正在服务器端(res.render()
)上呈现应用程序。因此,您无法在渲染模板后绑定数据。这是因为当您使用服务器端渲染时,您正在服务器上生成一个html并将其作为响应发送。之后,您将无法访问客户端代码。 (如php)
在这种情况下,您必须使用客户端http请求来获取数据。然后在客户端将其填写。您必须在服务器端创建一个http api。