Javascript: sposób blokowania oczekiwania na spełnienie warunku

Mam kilka ASP.NET UpdatePanels, każdy z AsyncPostBackTrigger powiązanym z zdarzeniem kliknięcia serwera tego samego przycisku. Ponieważ tylko jeden UpdatePanel może robić swoje rzeczy naraz, używam.get_isInAsyncPostBack() zPageRequestManager aby uniemożliwić użytkownikowi dostęp do innej części strony, dopóki asynchroniczny postback nie zostanie zakończony.

Kolejna część tej strony musi dynamicznie aktualizować wiele paneli aktualizacji kolejno. Ponieważ panele aktualizacji używają asynchronicznych wyzwalaczy, wywołanie__doPostBack("<%=ButtonName.ClientID %>", 'PanelId'); odpala asynchronicznie. Z tego powodu szybko przejdzie do następnej iteracji pętli i spróbuje zaktualizować następny panel. Jednak druga iteracja kończy się niepowodzeniem, ponieważ jest już inny panel aktualizacji wykonujący asynchroniczną wiadomość zwrotną.

Idealnie byłoby, gdyby można było czekać do.get_isInAsyncPostBack() zwraca false bez blokowania innej aktywności klienta.

Badania doprowadziły mnie do wielu ludzi z moim problemem, z których prawie wszyscy powinni korzystaćsetTimeOut(). Nie wiem, czy to zadziała dla mnie. Nie chcę czekać przez określony czas przed wykonaniem funkcji. Po prostu chcę, żeby mój Javascript czekał, podczas gdy inny skrypt działa, najlepiej poczekaj, aż spełni się określony warunek.

Rozumiem, że wielu prawdopodobnie będzie sugerować, że przemyślę mój model. Właściwie to nie jest mój model, ale taki, który został przekazany naszemu zespołowi programistów, który jest obecnie całkowitym bałaganem pod maską. Z powodu ograniczeń czasowych przepisanie modelu nie jest możliwe. Jedyną opcją jest wykonanie tej pracy. Myślę, że gdybym miał sposób, aby kod klienta czekał bez blokowania, mój problem zostałby rozwiązany.

questionAnswers(4)

yourAnswerToTheQuestion