これはおそらく残念ですが、レンダリングに時間がかかることがあるため、再キャプチャコントロールの場合は可能ですか?可能 - x秒間に読み込まれない場合、ユーザーコントロールのレンダリングをキャンセルしますか?
レンダリングに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
ありがとうございます。私はこれを見ていきます。 recaptchaコントロールの奇妙なことは、ロードするのに10秒かかることがあり、画面に何も表示されないことがあります。コントロールに何が入っているのか分からないので、レンダリングを止める方法を理解するのは難しいでしょう。 – Steve