在继续请求的同时呈现加载程序页面
Render a loader page while continuing the request
我目前正在开发一个应用程序,它使用 nodejs 和 ejs 以及 shopify api。我想知道是否有一种方法可以在请求完成时在屏幕上呈现 spinner/loader。
我的意思是:
app.get('/', (req, res) => {
res.render('loader');
// continue the api authentication
});
有没有办法做到这一点。
只要您调用 res.render() ,请求就会完成。
首先,如果您不使用 xhr、fetch、axios 等,您不能使用后端代码动态更改前端内容
因此,在您的用例中,您可以使用 DOM fetch api 或您想要的任何库在“/”路由上执行 GET 请求。代码可能如下所示。
const getData = async () => {
showloader()
const data = await fetch('/).then(res => res.json())
hideLoader()
}
在后端只执行认证逻辑并发回认证状态,客户端收到数据后你可以担心相应地处理DOM。
我看到您正在使用服务器端呈现,returns html 将在服务器本身上显示。
仅在已加载的 UI 上才可能显示微调器,其中后续请求仅获取数据并将其插回您的 UI。因为您已经加载了页面
您可以开始和停止在屏幕上显示加载程序。
如果您尝试在您的请求中完全加载一个新页面,那将是不可能的。
解决方案:
1) 使用SPA架构。
2) 从你的节点服务器 return 编译的 html 来自服务器作为对 ajax 请求的响应并自己插入到 UI,这样你就有了一个已经加载的页面您可以在其中显示微调器。您必须在服务器本身上编译 html 并将 html 作为编码字符串发回,在 UI 上解码并插入。
我目前正在开发一个应用程序,它使用 nodejs 和 ejs 以及 shopify api。我想知道是否有一种方法可以在请求完成时在屏幕上呈现 spinner/loader。
我的意思是:
app.get('/', (req, res) => {
res.render('loader');
// continue the api authentication
});
有没有办法做到这一点。
只要您调用 res.render() ,请求就会完成。
首先,如果您不使用 xhr、fetch、axios 等,您不能使用后端代码动态更改前端内容
因此,在您的用例中,您可以使用 DOM fetch api 或您想要的任何库在“/”路由上执行 GET 请求。代码可能如下所示。
const getData = async () => {
showloader()
const data = await fetch('/).then(res => res.json())
hideLoader()
}
在后端只执行认证逻辑并发回认证状态,客户端收到数据后你可以担心相应地处理DOM。
我看到您正在使用服务器端呈现,returns html 将在服务器本身上显示。
仅在已加载的 UI 上才可能显示微调器,其中后续请求仅获取数据并将其插回您的 UI。因为您已经加载了页面 您可以开始和停止在屏幕上显示加载程序。
如果您尝试在您的请求中完全加载一个新页面,那将是不可能的。
解决方案:
1) 使用SPA架构。 2) 从你的节点服务器 return 编译的 html 来自服务器作为对 ajax 请求的响应并自己插入到 UI,这样你就有了一个已经加载的页面您可以在其中显示微调器。您必须在服务器本身上编译 html 并将 html 作为编码字符串发回,在 UI 上解码并插入。