Это, вероятно, жаворонок, но возможно ли это для контроля рекаптчи, который иногда занимает много времени?
Если рендеринг занимает более 5 секунд, я бы хотел остановить рендеринг объекта и отобразить мою собственную капчу.
Я бы запустил таймер при загрузке страницы, и если через 5 секунд в каком-то случае в элементе управления recaptcha (prerender?) Я бы отменил рендеринг или сделал его невидимым или что-то в этом роде. Это сторонний пользовательский элемент управления, поэтому у меня нет источника.
Обновление:
Я попробовал код ниже после того, как отправил. Это работает в том смысле, что если пользовательский элемент управления не может подключиться к своему серверу, то есть - я отключаю свое интернет-соединение, но не имеет смысла, когда действительно длинная пауза, когда элемент управления ожидает возвращения сервера. к этому. Даже если я изменю интервал в миллисекундах на 1, элемент управления будет отображаться.
<MTAThread()> _
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
Dim ucChk As New UCExistenceChecker(recaptcha, Me)
Dim doFindUC As System.Threading.TimerCallback = AddressOf ucChk.FindUC
Dim stateTimer As System.Threading.Timer = New System.Threading.Timer(doFindUC, Nothing, 0, 5000)
End If
End Sub
Public Class UCExistenceChecker
Dim _r As Recaptcha.RecaptchaControl
Dim _pg As Page
Sub New(ByVal r As Recaptcha.RecaptchaControl, ByVal pg As Page)
_r = r
_pg = pg
End Sub
Sub FindUC(ByVal stateInfo As Object)
If _pg.FindControl("recaptcha") Is Nothing Then
_r.SkipRecaptcha = True 'This "unrenders" the control, sort of.
End If
End Sub
End Class