SilverLight 1.1 : Requête asynchrone.
Salut tous :salut:
Je fais quelques tests sur silverlight 1.1 et je rencontre déjà quelque chose que ne comprend pas bien :
sur ma page html j'ai un bouton et un label
associé au bouton :
Code:
1 2 3 4
| _ProgressLabel.SetProperty("innerHtml", "Retrieving ")
_request = New BrowserHttpWebRequest(New Uri("mon doc .xml"))
Dim iar As IAsyncResult = _request.BeginGetResponse(New AsyncCallback(AddressOf ReadFilesXml), _request)
Thread.Sleep(2000) |
donc la je mets mon label à "retrieving" pour informer que l'appel à commencer, je demande la lecture d'un fichier xml en asynchrone, et je fais une pose de 2 seconde pour faire genre "le serveur est long à répondre".
La fonction qui reprend la main :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| Private Sub ReadFilesXml(ByVal iar As IAsyncResult)
Dim response As HttpWebResponse = CType(iar.AsyncState, HttpWebRequest).EndGetResponse(iar)
' If Not response.StatusCode <> HttpStatusCode.OK Then
Dim content As Stream = response.GetResponseStream()
Dim result As New StringBuilder()
Using reader As XmlReader = XmlReader.Create(New StreamReader(content))
While reader.Read()
...
_ProgressLabel.SetProperty("innerHtml", "") |
donc la je lis mon fichier xml et ça fonctionne très bien.
Deux questions cependant :
1) Mon label ne passe pas par l'état "Retrieving ". Pourquoi ? je pensais que silverlight rafraichissait mes éléments en live :(
2) ' If Not response.StatusCode <> HttpStatusCode.OK Then : cette ligne est en commentaire, car le response. StatusCode est toujours à 0 (au lieu de 200=OK). Pourquoi? Je peux quand même lire le xml, c'est bizarre.
Merci