最初のページでは、ページ読み込みイベントで非同期 Web リクエストを起動します。
Private Sub LoadRecent()
Dim request As HttpWebRequest = HttpWebRequest.Create("")
request.Method = "GET"
request.BeginGetResponse(New AsyncCallback(AddressOf ResponseRecent), request)
End Sub
Private Sub ResponseRecent(ByVal asynchronousResult As IAsyncResult)
Dim webRequest As HttpWebRequest = DirectCast(asynchronousResult.AsyncState, HttpWebRequest)
Dim webResponse As HttpWebResponse = webRequest.EndGetResponse(asynchronousResult)
Dim stream As New StreamReader(webResponse.GetResponseStream())
Dim responseString = stream.ReadToEnd
End Sub
このコードを使用すると、Loadrecent()
読み込まれたページで正常に起動されます。最初のページに、別のページに移動するためのボタンがあるとします。[戻る] ボタンを押すと、最初のページに再び移動し、Loadrecent()
同様に起動されます。問題は、webrequest の応答が最初に起動されたときと同じであることです (これは不可能であると言えます)。作成した後に async webrequest を破棄する必要があるのと同じです。