Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 在时间密集型函数结束后,将通知服务器发送到客户端,发布res.render()_Node.js - Fatal编程技术网

Node.js 在时间密集型函数结束后,将通知服务器发送到客户端,发布res.render()

Node.js 在时间密集型函数结束后,将通知服务器发送到客户端,发布res.render(),node.js,Node.js,当用户在我的应用程序中遵循某个路由时,一个耗时的函数开始执行 我是否可以在请求开始时呈现该路由上的页面,然后在时间密集型功能结束时,向该页面发送消息,通知用户时间密集型工作已完成 然后,当用户所在的页面收到消息时,它会显示一个带有链接的隐藏div Flash消息可以做到这一点吗?您可以更好地使用WebSocket或event 看看 编辑我已经创建了一个你可以在你的页面中有一个div,它会向你发出一个AJAX请求,一旦API发送响应,你的div就会被API发送的数据填充 因此,渲染过程可以按以下方

当用户在我的应用程序中遵循某个路由时,一个耗时的函数开始执行

我是否可以在请求开始时呈现该路由上的页面,然后在时间密集型功能结束时,向该页面发送消息,通知用户时间密集型工作已完成

然后,当用户所在的页面收到消息时,它会显示一个带有链接的隐藏div


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调用,我必须阅读哪些内容?