我有一个java(7)网络应用程序(spring mvc)。该企业要求在用户离开主页 90 秒后执行一项操作(显示弹出公告)。 View /页面都是 jsp 页面,并且所有页面都有页眉和页脚 jspf。应用程序中没有太多网页 - 大约 8 个(更多是关于数据的)。
我正在寻找有关最佳方法的建议!我正在考虑在卸载事件中添加 session 日期/时间值,然后每 4 或 5 秒检查一次该值(90 秒不是关键任务!),直到达到 90 秒。
这个解决方案最让我印象深刻的是,虽然它可能不会对用户体验产生太大影响,但效率有点低,因为我不知道如何能够停止每 5 秒检查一次 session 变量,甚至一次操作已完成。
有人可以帮助我找到更好的方法吗?
最佳答案
此答案适用于服务器端 Java 解决方案,您可以在其中使用 Push。非常适合像 Vaadin 这样的服务器端框架但对于简单的 JSP 页面来说可能有点大材小用了。
执行者
Java 5 及更高版本捆绑了用于在后台线程上调度任务的复杂类。这些类实现 Executor
.
具体来说,ScheduledExecutorService
。您指定一个数字(例如 90)和一个时间单位(例如“秒”)。您通过 Callable
或Runnable
对象作为要执行的任务。 Java 处理剩下的事情。你会得到一个ScheduledFuture
如果您需要监视完成情况,您可以查询其状态。
请参阅Tutorial .
这项工作发生在后台线程上。因此,您的 Callable/Runnable 需要到达主 Servlet 的线程及其对象,因此您必须注意并发问题。
所有这些都在 StackOverflow 上得到了广泛的报道。因此,请搜索更多信息。
关于javascript - Web 应用程序 - 离开主页后 90 秒执行操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33278139/