これはおそらくヒバリですが、レンダリングに時間がかかることがあるため、recaptchaコントロールの場合、これは可能ですか?
レンダリングに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