2017-07-19 50 views
0

上下文天冬氨酸计时器滴答事件中断客户端的JavaScript

我正在监视服务的Web应用程序。对于每项服务,我都有一个UpdatePanel,状态和按钮用于启动,停止和重新启动服务。这些都是由Repeaters创建的,并且工作正常。

现在我已经添加了一个asp:Timer作为所有UpdatePanel的触发器,因为我希望状态响应地更新,所以我需要的间隔相当小。

的问题

我目前没有与这个两个问题。主要问题(标题中)是,当单击按钮时,我使用的是使用SweetAlert2的javascript来显示警告并等待用户输入。如果在此脚本中计时器发生滴答,它会中断。警告提示保持不变,但由于后台中的脚本已被中断,因此单击“确认”将不会执行任何操作。

第二个也是更为次要的问题是,在打勾期间,当UpdatePanel更新时,按钮在一秒钟内没有反应。这不是一个超级大问题,但如果您在打勾期间设法点击,则必须点击按钮两次,这很烦人。由于我想保持计时器间隔相当小,这实际上经常发生。

我曾经想过做

对于第一个问题,我真的不知道该怎么办。我可以在另一个线程上运行定时器吗?那会甚至像我想要的那样工作?我应该在JavaScript运行时暂停计时器吗?

对于第二个问题,我可以做一个解决方法,把按钮放在他们自己的UpdatePanel什么的。主要的原因我想在UpdatePanel按钮是取决于服务的状态来改变显示哪些:

// Set button visability and status color 
if (service.Status.Equals(ServiceControllerStatus.Running)) 
{ 
    statusSpan.Attributes.Add("class", "status-run"); 
    btnStart.Visible = false; 
} 
else 
{ 
    statusSpan.Attributes.Add("class", "status-stop"); 
    btnStop.Visible = false; 
    btnRestart.Visible = false; 
} 

我想我主要是寻找解决这一最“正确”的方式“刷新问题“在Web窗体应用程序中。但只要它完成了工作,我会采取任何“黑客”解决方案。

回答

0

同时使解决方法我的第二个问题,我意外地解决了我的第一个问题。

通过将按钮移动到自己的UpdatePanel,它们不再受计时器的影响并且javascript不会中断。我猜javascript的问题是,按钮被重新加载到UpdatePanel中,并且中断了脚本。

0

使用您的计时器在另一页, 并把这个页面上的页面IFRAME .... 它不会打扰你的JavaScript调用....

相关问题