Node.js 在时间密集型函数结束后,将通知服务器发送到客户端,发布res.render()
当用户在我的应用程序中遵循某个路由时,一个耗时的函数开始执行 我是否可以在请求开始时呈现该路由上的页面,然后在时间密集型功能结束时,向该页面发送消息,通知用户时间密集型工作已完成 然后,当用户所在的页面收到消息时,它会显示一个带有链接的隐藏divNode.js 在时间密集型函数结束后,将通知服务器发送到客户端,发布res.render(),node.js,Node.js,当用户在我的应用程序中遵循某个路由时,一个耗时的函数开始执行 我是否可以在请求开始时呈现该路由上的页面,然后在时间密集型功能结束时,向该页面发送消息,通知用户时间密集型工作已完成 然后,当用户所在的页面收到消息时,它会显示一个带有链接的隐藏div Flash消息可以做到这一点吗?您可以更好地使用WebSocket或event 看看 编辑我已经创建了一个你可以在你的页面中有一个div,它会向你发出一个AJAX请求,一旦API发送响应,你的div就会被API发送的数据填充 因此,渲染过程可以按以下方
Flash消息可以做到这一点吗?您可以更好地使用WebSocket或event 看看
编辑我已经创建了一个你可以在你的页面中有一个div,它会向你发出一个AJAX请求,一旦API发送响应,你的div就会被API发送的数据填充 因此,渲染过程可以按以下方式进行: 您可以在请求发出后立即呈现页面 页面上的div向耗时的API发出AJAX请求 一旦步骤2中的API成功响应,就会用数据填充div
我相信web sockets是可能的,你是说socket.io?是的,如果你使用的是nodejsI,那么它使用res.sse作为中间件。在我为该路由执行res.render之后,我还可以运行这个吗?@user1584421的想法是,您必须运行客户端JS,它将订阅SSE,而不是定期与XHR检查,一旦操作完成,服务器将发送一个事件。换句话说,您将需要一个单独的端点,您将订阅该端点。我正在尝试了解这将如何在客户端工作。医生真的很差。我是否将客户机代码放入标记中?那这条线怎么了?让eventSource=新的eventSource';如果我的路线不是GET路线,而是POST路线呢。您是否有此代码的工作示例的链接?此解决方案不起作用。我尝试了一些代码,但是我做了res.render,然后我尝试用res.sse'connected',{welcomesg:'Hello world!'从服务器发送一些消息;我得到这个错误:发送标题后无法设置标题。正如我在原始问题中所说,我想先呈现一个页面,然后当函数结束时,服务器应该向已经呈现的页面发送一条消息。谢谢!我会试试这个,因为另一个答案不起作用。因为我以前没有使用过AJAX。。。为了实现这一点,对于客户端和服务器传入/传出AJAX调用,我必须阅读哪些内容?