Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.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
Javascript 如何在用户重新加载页面时保持函数运行_Javascript_Angularjs_Node.js_Express - Fatal编程技术网

Javascript 如何在用户重新加载页面时保持函数运行

Javascript 如何在用户重新加载页面时保持函数运行,javascript,angularjs,node.js,express,Javascript,Angularjs,Node.js,Express,我的一个页面有一个控制器,在第一次访问时从API获取一些数据时初始化用户。我希望在用户重新加载页面时保持函数运行。如果用户重新加载、导航或关闭浏览器,甚至注销,我希望继续运行此功能,直到完成从API收集的数据 如何使用AngularJS和Express JS后端实现这种结构 顺便说一句,在第一次访问之后,我将检查数据库是否已初始化用户,并且不再调用初始化函数,我将从数据库中获取数据并提供给用户。这是不可能的 如果关闭或刷新浏览器连接,则浏览器连接将丢失,并且可能无法收到答案,这是不可能的 如果关

我的一个页面有一个控制器,在第一次访问时从API获取一些数据时初始化用户。我希望在用户重新加载页面时保持函数运行。如果用户重新加载、导航或关闭浏览器,甚至注销,我希望继续运行此功能,直到完成从API收集的数据

如何使用AngularJS和Express JS后端实现这种结构

顺便说一句,在第一次访问之后,我将检查数据库是否已初始化用户,并且不再调用初始化函数,我将从数据库中获取数据并提供给用户。

这是不可能的 如果关闭或刷新浏览器连接,则浏览器连接将丢失,并且可能无法收到答案,这是不可能的
如果关闭或刷新浏览器连接时,浏览器连接丢失,并且可能无法收到答案,则可以使用服务人员来实现该功能。它们没有页面上下文。它们在全局范围内运行,不属于特定页面

有关服务人员可以做什么的更多信息,请点击此链接


您可以使用服务人员来实现该功能。它们没有页面上下文。它们在全局范围内运行,不属于特定页面

有关服务人员可以做什么的更多信息,请点击此链接



谢谢你的回答,但我想这是可能的,但我不知道具体是怎么做的:我正在用express搜索,比如分配函数运行到完成,同时执行一些http请求。这是完全不可能的。如果用户不想做某件事,你不能强迫他去做。如果用户不希望您的脚本运行,则必须关闭页面。想象一下,所有这些攻击都会打开。你为什么要这么做?让我更清楚一点,我不会强迫用户。用户有一个从API收集用户信息的仪表板,获取大量数据需要几分钟的时间。我想分配一个在后端运行的函数,并且不想让用户一直等到所有数据收集完毕。他可以浏览网站,甚至可以注销。只有在函数完成并获取数据之后,用户才能在仪表板中看到数据。但是在获取数据的过程中,我不想打断用户继续停留在同一个页面上。谢谢你的回答,但我想这是可能的一些方法,但我不知道确切的原因:我正在用express进行搜索,比如指定函数运行到完成,同时执行一些http请求。这是完全不可能的。如果用户不想做某件事,你不能强迫他去做。如果用户不希望您的脚本运行,则必须关闭页面。想象一下,所有这些攻击都会打开。你为什么要这么做?让我更清楚一点,我不会强迫用户。用户有一个从API收集用户信息的仪表板,获取大量数据需要几分钟的时间。我想分配一个在后端运行的函数,并且不想让用户一直等到所有数据收集完毕。他可以浏览网站,甚至可以注销。只有在函数完成并获取数据之后,用户才能在仪表板中看到数据。但是在获取数据的过程中,我不想打断用户保持在同一个页面上。客户端javascript在浏览器中运行。如果用户关闭浏览器,则客户端脚本将停止运行。@Papkia ok,但我们不能根据用户请求分配一个在服务器上运行的函数,并继续运行,直到在后端完成为止。该函数从API获取数据并将其保存在db中。在用户再次访问数据库后,将从数据库中获取数据,该数据由函数完成?客户端javascript将在浏览器中运行。如果用户关闭浏览器,则客户端脚本将停止运行。@Papkia ok,但我们不能根据用户请求分配一个在服务器上运行的函数,并继续运行,直到在后端完成为止。该函数从API获取数据并将其保存在db中。用户再次访问后,我们将从数据库中提供数据,该数据由函数完成?谢谢,服务人员可以在后端工作吗?或者它在浏览器中运行,但不依赖于页面?您的要求与推送通知非常相似,但在不同的上下文和用法中。服务器应该在您的案例请求中推送NotificationInyourCaseRequest,这将依次执行您需要的操作。!附言:我对这方面的知识不多。请进行研发。外面有很多例子:好的,我会做研究,还有一个问题,可以实现这一点,有多个express应用程序,比如我有两个express应用程序,其中一个用作web服务,另一个具有从API获取数据的功能,两者都使用相同的db,在获取数据后,它会为用户表设置一个值,isInitialized=true,在angular controller中的web服务器应用程序中,一个函数检查isInitialized值,如果是,则加载数据,但如果不是,则对用户说:您的仪表板正在准备中,您必须相应地处理用例场景。检查express应用程序是否为web服务或其他获取
然后使用服务人员相应地执行您需要的操作。谢谢,服务人员可以在后端工作吗?或者它在浏览器中运行,但不依赖于页面?您的要求与推送通知非常相似,但在不同的上下文和用法中。服务器应该在您的案例请求中推送NotificationInyourCaseRequest,这将依次执行您需要的操作。!附言:我对这方面的知识不多。请进行研发。外面有很多例子:好的,我会做研究,还有一个问题,可以实现这一点,有多个express应用程序,比如我有两个express应用程序,其中一个用作web服务,另一个具有从API获取数据的功能,两者都使用相同的db,在获取数据后,它会为用户表设置一个值,isInitialized=true,在angular controller中的web服务器应用程序中,一个函数检查isInitialized值,如果是,则加载数据,但如果不是,则对用户说:您的仪表板正在准备中,您必须相应地处理用例场景。检查express应用程序是否为web service或其他获取数据的功能,然后使用服务人员相应地执行您需要的操作。