Peoxus
Messages postés12Date d'inscriptiondimanche 28 septembre 2008StatutMembreDernière intervention15 juillet 2009
-
3 avril 2009 à 19:03
Peoxus
Messages postés12Date d'inscriptiondimanche 28 septembre 2008StatutMembreDernière intervention15 juillet 2009
-
4 avril 2009 à 16:38
Bonjour à tous.
Ca fait maintenant deux jours que je cherche une réponse à mon problème partout sur le Net sans résultat.
J'ai un contrôle webBrowser qui doit visiter une liste d'URL.
Lors de l'appel de Form1_Load (donc au lancement) j'ai un webBrowser1.Navigate(@"_URL_");
Dans l'évènement webBrowser1_DocumentCompleted j'ai aussi mis un webBrowser1.Navigate(@"_URL_");
Mon problème est que mon programme s'exécute correctement (il affiche les pages Web en boucle), mais uniquement pendant un moment. Le webBrowser finit (tôt ou tard, c'est aléatoire) par "faire semblant" d'en charger une.
J'ai vérifié que les URLs étaient valides, que ma connexion était fonctionnelle, j'ai tenté des Application.DoEvents(), des Thread.Sleep(), des while (webBrowser1.ReadyState != WebBrowserReadyState.Complete), etc sans jamais réussir à charger indéfiniment mes pages Web les unes après les autres. Le webBrowser finit toujours par se "bloquer".
Donc ma question est simple : pourquoi et comment corriger ça ? :/
cs_Malkuth
Messages postés268Date d'inscriptionsamedi 22 février 2003StatutMembreDernière intervention24 avril 20134 4 avril 2009 à 00:05
quand tu dis "Semblant", tu veux dire qu'il affiche la page mais en réalitée elle est pas a jour?
si c'est ca c'est un probléme de cache sans doute, au pire tu doit pouvoir rajouter un truc comme ?rnd=NOMBREAL2ATOIRE a la fin de l'url en changeant le nombre aléatoire a chaque fois, comme ca, il ne reprendra jamais les pages en cache
Peoxus
Messages postés12Date d'inscriptiondimanche 28 septembre 2008StatutMembreDernière intervention15 juillet 2009 4 avril 2009 à 14:52
Quand je dis semblant je veux dire qu'il fonctionne comme ça :
J'ai "Chargement de la page _URL1_...".
Elle se charge.
"Chargement de la page _URL2_...".
Elle se charge.
"Chargement de la page _URLn_...".
Et là j'ai beau attendre des heures, elle ne se chargera jamais dans le webBrowser. Il faut par exemple que je clique sur un lien de la page actuellement chargée dans le webBrowser pour que le webBrowser recommence sa boucle. Jusqu'à un certain moment où il ne rechargera encore plus les pages et où je devrai recliquer sur un lien quelconque. Et ainsi de suite.
Peoxus
Messages postés12Date d'inscriptiondimanche 28 septembre 2008StatutMembreDernière intervention15 juillet 2009 4 avril 2009 à 16:38
J'ai essayé l'idée du nombre aléatoire mais j'ai toujours le même problème. Je me suis tourné du côté du cache pour vider le cache avant chaque Navigate() mais ça n'a pas non plus corrigé mon problème. Au final j'aimerais simplement pouvoir mettre un timeout au chargement de la page pour faire un webBrowser.Refresh() en cas de tentative de chargement trop longue. Mais je ne sais pas trop comment m'y prendre.