使用多个不同的关键字在线搜索后,我一直无法找到解决问题的方法。
我首先寻找一种方法来弹出一条消息,要求用户在会话取消前一分钟更新他们的会话。我决定使用的解决方案是在母版页中运行一个 javascript 计时器,并在 Masterpage.Page_Load() 上调用它。这样,每当我的用户从一个页面导航到另一个页面时,他们都会重置计时器。但是,由于用户将使用的许多页面都具有更新面板并异步更新,因此可以访问我正在使用的功能,但会被跳过(根据调试器)。
我正在使用的功能是:
ScriptManager.RegisterStartupScript(main, this.GetType(), "callTimer", "callTimer();", true);
此函数在常规回发或母版页上的异步回发上运行良好(我通过在母版页的更新面板上执行回发来更新计时器),但是,在异步回发上将被跳过。
我已经尝试了一些东西,使功能 Page 或 Masterpage 中的 UpdatePanel 或子页面中的 updatepanel 的控制。我也尝试将此代码放在子页面中,但是虽然这些更改确实重置了计时器,但它会导致 javascriptcode 运行多次,并且它们会争夺显示倒计时的标签。
我在这里真的很茫然。我认为一个可能的解决方案是更改启动脚本的控件并再次终止在该代码之前运行的所有 javascript。然而,寻找以编程方式终止、取消或停止 javascript 函数的方法也不会产生有用的结果。
我可以接受的另一个解决方案是在鼠标移动时重置计时器,但由于我正在为 IE8 设计,除非窗口失焦,否则这将不起作用。