Javascript:非阻塞方式等待条件为真

2023-11-22

我有几个 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(使用前将#替换为@)

Javascript:非阻塞方式等待条件为真 的相关文章

随机推荐

  • Swift:无法在 if let 语句条件中使用数组过滤器

    假设我有一个用户名数组 let users Hello 1212 12 Bob Rob 我想得到第一个名字长度为2的用户 所以我过滤了数组并得到了第一个用户 if let selected users filter 0 characters
  • 使用 Chokidar 监视特定文件扩展名

    我正在寻找使用 nodejs Chokidar 观看文件夹 我只想监视 xml 文件的添加 删除 我是 Chokidar 的新手 无法弄清楚 我尝试设置 Chokidar 忽略以匹配以 xml 结尾的所有字符串 但看起来 Chokidar
  • C# = 为什么 Excel 进程没有结束?

    我有以下代码 private bool IsMousetrapFile string path logger Log validateFileMessage path Excel Application xlApp new Microsof
  • Objective C 中的模运算符

    来自 Objective C 编程 Kochan 程序5 8提示用户输入数字 然后显示数字 从该数字从最右边到最左边的数字 Program to reverse the digits of a number import
  • Java中如何快速判断一个方法是否被重写

    如果我可以确定同一类中的另一个方法没有被覆盖 那么我可以对我的其中一个方法应用可能的优化 这只是一个轻微的优化 所以反射是不可能的 我是否应该创建一个受保护的方法来返回该方法是否被重写 以便子类可以使其返回 true 我不会这样做 它违反了
  • 使用 monotonically_increasing_id() 将行号分配给 pyspark 数据帧

    我使用 monotonically increasing id 使用以下语法将行号分配给 pyspark 数据帧 df1 df1 withColumn idx monotonically increasing id 现在 df1 有 26
  • Twitter 搜索 (atom) API - 排除转发

    我正在使用 Twitter 的 Atom 搜索 API 现在我用某个词呈现所有 最新的 5 条 推文 但不幸的是 很多人转发了这篇帖子 而我同样的帖子被转发了 5 次 我可以排除转发吗 如果是这样 怎么办 我已经通过添加成功排除转发 排除
  • 如何检查输入文本字段是否仅包含空格?

    在 Javascript 中检查输入文本字段是否为空 不包含任何内容或仅包含空格 的最简单方法是什么 var str document getElementById myInput value if str match s nothing
  • 使用 websocket mod_proxy_wstunnel 进行反向代理

    我的 Web 套接字和反向代理 Apache 有问题 我已升级到最新版本 2 4 5 并加载了模块mod proxy wstunnel httpd conf
  • Rails 3.x 是否有调试工具栏

    I used 机架 错误一年多前 现在我想将它与新的 Rails 3 1 项目一起使用 我尝试安装 master 和 Rails3 分支 但没有成功 也尝试过一些 github 分支但他们也没有工作 有没有具有相同功能的替代方案 附 我已经
  • 使用 T-SQL,从字符串中返回第 n 个分隔元素

    我需要创建一个函数 它将返回分隔字符串的第 n 个元素 对于数据迁移项目 我使用 SQL 脚本将存储在 SQL Server 数据库中的 JSON 审核记录转换为结构化报告 目标是在没有任何代码的情况下交付一个 sql 脚本和该脚本使用的
  • Windows 内存文件系统

    我有一个命令行可执行文件 需要在 Windows XP 上从 Java 运行 它使用文件作为输入和输出 但我想避免文件IO的开销 所以我想到了内存RAM文件系统 NetBSD 有mount mfs 您能推荐最方便的方法吗 您还应该考虑您是否
  • 如何在 F# 中定义 printfn 等效项

    由于我使用 F 进行研究 特别是使用 F 交互式 因此我希望拥有可切换的 调试时打印 功能 I can do let dprintfn printfn F 交互式 说 val dprintfn Printf TextWriterFormat
  • 如何让 xdebug/step-debugging 与 ddev 一起使用?

    我一直在我的 Drupal 项目上使用 ddev 现在想使用 xdebug 这样我就可以使用 PhpStorm 进行逐步调试 或者实际上任何 IDE 都可以 但我似乎无法让它在断点处停止 我试图遵循ddev 文档中的说明但这并没有让我继续下
  • 在 Matlab 中生成包含给定集合中至少一个元素的所有组合

    I use combnk生成组合列表 如何生成始终包含特定值的组合子集 例如 对于combnk 1 10 2 我只需要包含 3 和 或 5 的组合 有没有快速的方法可以做到这一点 好吧 在您的具体示例中 从集合 1 10 中选择两个整数 其
  • 无法更改引导工具提示标题

    我已经浏览了有关堆栈溢出的几篇文章 询问了几乎完全相同的问题 但我在这些问题上发现的内容都没有帮助 我对 JQuery 和 Bootstrap 非常陌生 所以也许我只是错过了一些非常简单的东西 我希望能够在第一次初始化后更改不同元素上的工具
  • 如何将 boost 线程添加到向量中

    我有这样的错误 vector
  • Android ZipInputStream:只有 DEFLATED 条目可以有 EXT 描述符

    在我的 Android 设备上 我需要提取从内容 uri 获取的文件 一个 xapk 据我所知 这是一个普通的 zip 存档 我正在使用这行代码创建 ZipInputStream ZipInputStream zis new ZipInpu
  • *(a++) 给出错误,但 *(a+1) 没有给出错误?其中 a 是数组名称?

    在下面的代码中 void main char a 1 5 3 4 5 6 printf d n a line gives error wrong type argument to increment printf d n a 1 第 4 行
  • Javascript:非阻塞方式等待条件为真

    我有几个 ASP NET UpdatePanel 每个都有一个与同一按钮的服务器端单击事件绑定的 AsyncPostBackTrigger 由于一次只能有一个 UpdatePanel 执行其操作 因此我使用 get isInAsyncPos