如果它在多个线程中运行,则中止函数调用

时间:2013-09-04 06:29:06

标签: java javascript multithreading jsp session-timeout

我在我的jsp页面中设置了sessionTimeout函数,我在单击按钮时使用iframe调用另一个Jsp页面在另一个jsp页面中我也有这个sessionTimeout函数。因此,该功能并行运行。任何人都可以帮助我“如果在不同的线程中多次调用相同的函数,那么它应该取消所有其他线程并访问最新的线程”。

我尝试过使用synchronized方法,但它不允许我使用,直到函数完成所以我不能使用同步

有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

在不同的iframe中运行的Javascript不保证在每个浏览器引擎实现的同一个线程中运行。

您可能需要在父窗口中构建任务管理实用程序,以跟踪iframe实例和sessionTimeout函数的运行状态(将状态保持在数组/映射中)。由于父级内的脚本和所有iframe在其上下文中都是单线程的,因此您可以在iframe中触发sessionTimout函数之前检查每个iframe的状态。

如果您需要跨域iframe通信,可以在http://www.codeproject.com/Tips/585663/Communication-with-Cross-Domain-IFrame-A-Cross-Bro

上阅读此帖子