我有几个 ASP.NET UpdatePanel,每个都有一个与同一按钮的服务器端单击事件绑定的 AsyncPostBackTrigger。由于一次只能有一个 UpdatePanel 执行其操作,因此我使用.get_isInAsyncPostBack()
of the PageRequestManager
以防止用户在异步回发完成之前无法访问页面的其他部分。
该页面的另一部分需要连续动态更新多个更新面板。由于更新面板使用异步触发器,因此调用__doPostBack("<%=ButtonName.ClientID %>", 'PanelId');
异步触发。因此,它将快速移动到循环的下一个迭代并尝试更新下一个面板。但是,第二次迭代失败,因为已经有另一个更新面板在执行异步回发。
理想情况下,有一种方法可以等到.get_isInAsyncPostBack()
返回 false 而不阻止其他客户端活动。
研究让我找到了很多有我问题的人,几乎所有人都被建议使用setTimeOut()
。我不认为这对我有用。我不想在执行函数之前等待指定的时间。我只是希望我的 Javascript 在另一个脚本运行时等待,最好等到特定条件成立。
我知道很多人可能会建议我重新考虑我的模型。这实际上不是我的模型,而是交给我们开发团队的模型,目前该团队的内部情况一团糟。由于时间限制,无法重写模型。唯一的选择就是让这项工作发挥作用。我认为如果我有办法让客户端代码等待而不阻塞,我的问题就会得到解决。
JavaScript 中没有诸如等待或睡眠之类的功能,因为它会阻止浏览器响应。
对于你的情况,我会采用类似于以下内容的内容:
function wait(){
if (!condition){
setTimeout(wait,100);
} else {
// CODE GOES IN HERE
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)