Contrôle webBrowser qui se bloque/fige ?

Fermé
Peoxus Messages postés 12 Date d'inscription dimanche 28 septembre 2008 Statut Membre Dernière intervention 15 juillet 2009 - 3 avril 2009 à 19:03
Peoxus Messages postés 12 Date d'inscription dimanche 28 septembre 2008 Statut Membre Dernière intervention 15 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 ? :/

Merci d'avance. :)

4 réponses

Peoxus Messages postés 12 Date d'inscription dimanche 28 septembre 2008 Statut Membre Dernière intervention 15 juillet 2009
3 avril 2009 à 19:04
Apparemment ma mise en page n'a pas été prise en compte, désolé si c'est un peu illisible.
0
cs_Malkuth Messages postés 268 Date d'inscription samedi 22 février 2003 Statut Membre Dernière intervention 24 avril 2013 4
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
0
Peoxus Messages postés 12 Date d'inscription dimanche 28 septembre 2008 Statut Membre Dernière intervention 15 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.

Je vais essayer pour le cache.
0
Peoxus Messages postés 12 Date d'inscription dimanche 28 septembre 2008 Statut Membre Dernière intervention 15 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.
0
Rejoignez-nous