Javascript: неблокирующий способ ожидания, пока условие не выполнится
У меня есть несколько ASP.NET UpdatePanels, каждый с AsyncPostBackTrigger, привязанный к той же кнопке 'Событие щелчка на сервере. Поскольку только одна UpdatePanel может делать свое дело одновременно, я использую.get_isInAsyncPostBack()
изPageRequestManager
запретить пользователю доступ к другой части страницы, пока не завершится асинхронная обратная передача.
Другая часть этой страницы должна динамически обновлять несколько панелей обновления последовательно. Поскольку панели обновления используют асинхронные триггеры, вызывая__doPostBack("", 'PanelId');
стреляет асинхронно. Из-за этого он быстро перейдет к следующей итерации цикла и попытается обновить следующую панель. Однако вторая итерация завершается неудачно, потому что уже есть другая панель обновлений, выполняющая асинхронную обратную передачу.
В идеале был бы способ подождать, пока.get_isInAsyncPostBack()
возвращает false, не блокируя другие действия клиента.
Исследования привели меня ко многим людям с моей проблемой, почти всем из которых рекомендуется использоватьsetTimeOut()
, Я не думаю, что это будет работать для меня. Я нене хочу ждать указанное количество времени перед выполнением функции. Я просто хочу, чтобы мой Javascript ждал, пока запущен другой скрипт, желательно подождать, пока не выполнится определенное условие.
Я понимаю, что многие, вероятно, захотят предложить мне пересмотреть свою модель. Это'На самом деле это не моя модель, а та, что была передана нашей команде разработчиков, и в настоящее время она находится в полном беспорядке. Из-за нехватки времени переписать модель нельзя. Единственный вариант - заставить это работать. Я думаю, что если бы у меня был способ заставить клиентский код ждать без блокировки, моя проблема была бы решена.