Attendre le chargement d'une page

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Programmes
Messages : 80
Inscription : mer. 24/mai/2006 12:12

Attendre le chargement d'une page

Message par Programmes »

Bonsoir à tous,
Je bloque sur un problème que je ne comprends pas. J'ai plus pages à charger qui sont définit dans une procédure. Le soucis que j'ai, c'est que cette procédure n'attend pas que le chargement de la page web soit fini. J'ai mis une variable en globale qui est définit dans:

Code : Tout sélectionner

               Select EventGadget()
                    Case #Web
                        Select EventType()
                            Case #PB_EventType_DownloadStart
                            Case #PB_EventType_DownloadProgress 
                                ProgressMax=GetGadgetAttribute(#Web,#PB_Web_ProgressMax)
                                Progress=GetGadgetAttribute(#Web,#PB_Web_Progress)
                                If Progress<>ProgressMax
                                    HideGadget(#ProgressBar,0)
                                    SetGadgetState(#ProgressBar,Progress)
                                Else 
                                    HideGadget(#ProgressBar,1)
                                EndIf 
                            Case #PB_EventType_DownloadEnd:PageWeb=1
                        EndSelect
Voici ma procédure:

Code : Tout sélectionner

Repeat
        Url.s= http://www.toucharger.com/windows/utilitaires/gravure/p+Str(Compte)+".htm"
        While  PageWeb<>1
         Wend
        PageWeb=0
        Compte+1
    Until Compte>NombrePage
EndIf
Ce que je ne comprends pas, si je mets un messagerequester("","") il charge très bien la page, mais dès que je valide ce message, le While fait planter le programme.
J'ai bien mis la variable PageWeb en globale mais pourtant dans la boucle il ne la détecte pas apparamment parce qu'il ne charge pas la page...J'avoue que je suis vraiment perdu!!!

Merci à vous tous
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Attendre le chargement d'une page

Message par Backup »

relis toi avant de poster, parceque franchement je ne comprends pas vraiment ta question
J'ai plus pages à charger qui sont définit dans une procédure
????


de plus , tu dis poster une procedure , je ne la vois pas ....

je vois juste une boucle ....

Code : Tout sélectionner

Repeat
        Url.s= http://www.toucharger.com/windows/utilitaires/gravure/p+Str(Compte)+".htm"
        While  PageWeb<>1
         Wend
        PageWeb=0
        Compte+1
    Until Compte>NombrePage
EndIf
cette boucle Repeat-until ne fait rien !
elle passe son temps a mettre un lien dans une variable .. le chargement il est ou ???
de plus ce lien ne peut pas marcher en l'etat, une variable Chaine attends une chaine ... là , je ne vois pas de chaine !!
enfin si ===> ".htm"

de plus , ta ligne

Code : Tout sélectionner

While  PageWeb<>1
fait reference a la variable "PageWeb" , mais comme on ne sait rien de ton code, on ne peut pas t'aider car
qui nous dis que la variable "PageWeb" soit la bonne ?


et pour info , dans une Procedure

Procedure titi()
bla
endprocedure

si tu veux garder l'etat d'une variable sans forcement la mettre en global
tu peux utiliser "Static"
Avatar de l’utilisateur
falsam
Messages : 7317
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Attendre le chargement d'une page

Message par falsam »

Bonjour Dobro.

Un café, un croissant , un peu de musique et ça ira mieux :)

Image
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
falsam
Messages : 7317
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Attendre le chargement d'une page

Message par falsam »

Une solution avec un timer. J'ai mis des pages un peu lourdes à charger. ça à l'air de fonctionner mais attention il pourrait il y avoir des soucis liés aux pages contenant du JavaScript et du code html5 par exemple.

Je regarde comment configurer le webgadget pour le rendre compatible html5.

Code : Tout sélectionner

Global Dim Page.s(5), NextPage.b = #True, Timer

Page(0) = "http://purebasic.com"
page(1) = "http://www.development-lounge.de/viewforum.php?f=118"
Page(2) = "http://www.01net.com/editorial/620698/apple-rachete-beats-pour-3-milliards-de-dollars/"
Page(3) = "http://forums.spiderbasic.com/"
Page(4) = "http://www.01net.com/editorial/620572/google-devoile-une-voiture-sans-volant-ni-pedales/"
Page(5) = "http://www.purebasic.fr/english/index.php"

If OpenWindow(0, 0, 0, 800, 600,"WebGadget",#PB_Window_SystemMenu | #PB_Window_ScreenCentered) 
  AddWindowTimer(0, 123, 5000)
  
  WebGadget(1, 0, 0, 800, 600,"") 
  SetGadgetText(1, "Wait ")
  
  Repeat 
    Event   = WaitWindowEvent()
    EGadget = EventGadget()
    EType   = EventType()
    ETimer  = EventTimer()
    
    Select Event
      Case #PB_Event_Timer
        If NextPage = #True And n <= ArraySize(Page())
          Nextpage = #False 
          Debug "Chargement de la page: " + Page(n)
          SetGadgetText(1, Page(n))
          n+1
        EndIf
                
      Case #PB_Event_Gadget
        Select EGadget
          Case 1
            Select EType
              Case #PB_EventType_DownloadStart   
                
                
              Case #PB_EventType_DownloadProgress
                
                
              Case #PB_EventType_DownloadEnd     
                NextPage = #True
                  
            EndSelect
        EndSelect
        
          Case #PB_Event_CloseWindow
        End
        
    EndSelect
  ForEver
EndIf
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Attendre le chargement d'une page

Message par Backup »

falsam a écrit :Bonjour Dobro.

Un café, un croissant , un peu de musique et ça ira mieux :)

quoi ? , il y a quelques chose de faux dans les remarques que j'ai écrite ?

pondre un code tout fait a chaque fois, n'est pas rendre service
tu va te faire prendre pour une station service ! (le forum l'a deja demontré )

je prefere, mettre le nez dans la mouise a celui qui post, et ensuite progresser avec lui ...
en donnant une solution toute faite, c'est sur tu va passer pour le hero , mais au fonds, tu n'aides pas les gens , tu les assistes ...

ce n'est pas son code, que tu corrige, mais le tiens que tu imposes ...

prendre une réflexion dans les dents , c'est sur ça fait pas plaisir , mais si tu surmontes le truc
tu progresses, de fil en aiguille tu corriges tes erreurs , et là, tu apprends ...

avoir le beau role sur le moment, c'est sur, ça fait briller le poil ,
tu te regarde dans ta glace , tu te dis, "ouai , je suis trop fort , je lui ait fait son code en 3 minutes chrono"

mais lui .... qu'a t'il appris ? , rien !
dans sa prochaine demande, il risque de poser sa question aussi mal , donner un minimum de code, d'infos .. (genre, pourquoi je m’emmerde, "l'autre", il va tout me faire ... )

perso , je préfère passer pour un connards , ronchon , mais bien des gens, ne se sont pas arrêté là, et ont progressé dans la discussion
et au final on surement, mieux appris ....

un "prof" qui te donne la solution, sans justement te pousser dans tes erreurs , est a mon avis , un mauvais prof ...

la solution , ne devrai se lâcher que si le gars est vraiment complétement largué ... ou si le gars la demande clairement ...


je passe peut etre pour un dinosaure, mais bien des conversations, on fini sur du code plus intéressant que si on s’était arrêtè a la première réponse ...


le fait que tu donnes une solution , est une bonne chose, mais je trouve que tu dégaines trop vite ;)
un peu comme si tu avais peur que quelqu'un donne la solution avant toi ... (c'est le sentiment que j'ai depuis un moment )
c'est bien, mais du coup tu empêches a mon avis, qu'une discussion s’instaure ...
du coup je crois, que le forum, perd de son intérêt , ..... mais bon :)
Avatar de l’utilisateur
falsam
Messages : 7317
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Attendre le chargement d'une page

Message par falsam »

Soit patient Dobro, je vais te répondre ..... le temps de digérer ça !!
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
Micoute
Messages : 2583
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: Attendre le chargement d'une page

Message par Micoute »

Bonjour à tous,

@Dobro, tu as raison, il ne faut pas faire du tout fait, mais un débutant, s'il pose sa question sans laisser de code, c'est surement qu'il ne sait pas par où débuter, car il ne voit généralement pas la solution.

@falsam, tu as raison aussi, car quand je sens que me noie dans mon problème, j'aime bien les petits exemples que tu donnes et ça donne un peu de lumière dans le tunnel de ma réflexion.

Merci à vous deux, les piliers de ce forum avec bien d'autres et vous m'apportez la confiance en moi !
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Attendre le chargement d'une page

Message par Backup »

falsam a écrit :Soit patient Dobro, je vais te répondre ..... le temps de digérer ça !!

meme pas la peine , fais donc comme tu le sent ...
je donnais mon avis, je donnais une reponse ...
Avatar de l’utilisateur
falsam
Messages : 7317
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Attendre le chargement d'une page

Message par falsam »

Dobro a écrit :meme pas la peine , fais donc comme tu le sent ...je donnais mon avis, je donnais une reponse ...
Si ça vaut la peine parce que j'ai le droit à une réponse publique face à des propos publiques qui me concerne.

Avant de poster ce petit déjeuner accompagné d'un bonjour, Je savais que tu allais mal le prendre Dobro.
Dobro a écrit :quoi ? , il y a quelques chose de faux dans les remarques que j'ai écrite ?
Non non ... pas de chose fausse. Il était inutile que je surenchérisse sur tes propos. Ayant je pense compris sa demande j'ai proposé une solution.
Dobro a écrit :pondre un code tout fait a chaque fois, n'est pas rendre service
Je préfère mettre un petit code fonctionnel et documenté si il le faut.
Dobro a écrit :je prefere, mettre le nez dans la mouise a celui qui post, et ensuite progresser avec lui ...
C'est comme ça que certains sujets sont à rallonge d'autant plus que tu ne seras pas le seul à répondre.
Dobro a écrit :en donnant une solution toute faite, c'est sur tu va passer pour le hero , mais au fonds, tu n'aides pas les gens , tu les assistes ...
Rien à faire d'être un héro et je n'ai fait que proposer une solution en se servant d'un timer. Rien ne t’empêche de proposer TA solution.
Dobro a écrit :ce n'est pas son code, que tu corrige, mais le tiens que tu imposes ...
Comme je viens de le dire, je n'impose pas .... je propose.
Dobro a écrit :avoir le beau role sur le moment, c'est sur, ça fait briller le poil , tu te regarde dans ta glace , tu te dis, "ouai , je suis trop fort , je lui ait fait son code en 3 minutes chrono"
Non mais hoooo tu n'es pas bien toi hein ? je vais encore me répéter : Je n'ai rien à prouver sur ce forum.
Dobro a écrit :mais lui .... qu'a t'il appris ? , rien !
Il va regarder le code que je lui propose et apprendre qu'en utilisant un timer cette solution fonctionne peut être. Il peut aussi me dire que ma solution n'est pas fiable.
Dobro a écrit :dans sa prochaine demande, il risque de poser sa question aussi mal , donner un minimum de code, d'infos .. (genre, pourquoi je m’emmerde, "l'autre", il va tout me faire ... )
Quand une question n'est pas compréhensible je demande des informations complémentaires. Dans ce cas présent j'avais compris le sens de sa question.
Dobro a écrit :perso , je préfère passer pour un connards , ronchon , mais bien des gens, ne se sont pas arrêté là, et ont progressé dans la discussion
et au final on surement, mieux appris ....
Connard je ne me permettrais pas d'autant plus que je ne te connais pas. Ronchon par contre ..... héhé.
Dobro a écrit :un "prof" qui te donne la solution, sans justement te pousser dans tes erreurs , est a mon avis , un mauvais prof ...
:arrow: Un professeur qui pousse son élève dans ses erreurs est un professeur doté d'un Ego qui le pousse à vouloir briller, être reconnu, admiré, adulé : Il enfonce l’élève dans ses erreurs pour lui dire à la fin qu'il est le meilleur en lui donnant la solution du problème.
Dobro a écrit :la solution , ne devrai se lâcher que si le gars est vraiment complétement largué ... ou si le gars la demande clairement ...
Oui Maitre Dobro .... donne moi la solution :mrgreen: (Là tu m'énerves)
Dobro a écrit :le fait que tu donnes une solution , est une bonne chose, mais je trouve que tu dégaines trop vite.
Ooops désolé de ne pas te laisser le champs libre à ton épanouissement
Dobro a écrit :un peu comme si tu avais peur que quelqu'un donne la solution avant toi ... (c'est le sentiment que j'ai depuis un moment ) c'est bien, mais du coup tu empêches a mon avis, qu'une discussion s’instaure ...
Finalement serais tu pas vexé de ne pas poster TA solution avant la mienne ? Suis je obligé d'attendre que quelqu'un poste une solution avant de proposer la mienne ? Il y a t'il un délais d'attente avant de proposer une solution ? je dis n'importe quoi bien sur ..... mais toi aussi tu délires dans tes propos.

Je n'ai fait que proposer une solution qui n'entrave en rien une discussion.
Dobro a écrit :du coup je crois, que le forum, perd de son intérêt , ..... mais bon :)
Pourquoi il perd de son intérêt ? parce que ce n'est pas toi qui donne TA solution ? Mais je t'en prie Dobro, fais nous part de tes solutions.

Si ce forum perd de son intérêt c'est surement parce que quelqu'un à poster un code fonctionnel trop rapidement !
Dernière modification par falsam le jeu. 29/mai/2014 14:51, modifié 1 fois.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Attendre le chargement d'une page

Message par Backup »

Rhooo !

certains des anciens ici, pourrai te dire que si je veux je code tres tres vite , j'ai pas a te prouver ça ... :roll:

de plus ,j'ai a ma disposition une bibliothèque de code, dont tu n'imagines même pas la taille ! ...
il y a quelques années j'avais mis a disposition "Cognitio" un Zip de Codes glanés, fait , et classés par Dossiers ...
t'imagines bien que depuis il a grossit ....

si j'avais voulu poster une réponse toute faites, j'avais largement le temps de le faire avant toi ... :roll:

ne cherche pas a faire croire, que je suis frustré de n'avoir pas répondu avant toi , la ça deviens carrément risible ... :roll:
Avatar de l’utilisateur
falsam
Messages : 7317
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Attendre le chargement d'une page

Message par falsam »

@Dobro : Ce qui a été risible c'est surtout ta réaction parce que j'ai posté un petit code fonctionnel !! Je ne cherche pas à faire croire quoique ce soit sur le comportement que tu as parfois sur ce forum ...... tout le monde sait (surtout les anciens) et on fait avec ou pas *:)

* Certains préferent rester distants sur ce forum et continuent sur le forum anglais.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Attendre le chargement d'une page

Message par Backup »

falsam a écrit :@Dobro : Ce qui a été risible c'est surtout ta réaction parce que j'ai posté un petit code fonctionnel !!

oui , tu as raison , je suis jaloux de ta brillance .... :mrgreen:
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Re: Attendre le chargement d'une page

Message par nico »

Je regarde comment configurer le webgadget pour le rendre compatible html5.
C'est ici :
http://www.purebasic.fr/french/viewtopi ... hilit=8000

Je précise que dans le post, je donne deux chemins de registre, c'est pas faux mais c'est une bêtise de l'avoir écrit puisque qu'en réalité ce sera le même chemin, la redirection s'occupant du reste.


La lib Webgadget est une aberration buggée à mord, les problèmes signalées n'ont jamais été résolu, je doute même que quelqu'un se soit intéressé à cela; mais bon c'est comme ça.
Avatar de l’utilisateur
falsam
Messages : 7317
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Attendre le chargement d'une page

Message par falsam »

Merci pour cette info Nico : Je viens de tester sur des pages contenant des scripts JQuery et des balises HTML5 et ça fonctionne parfaitement bien.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Re: Attendre le chargement d'une page

Message par nico »

C'est le genre de chose qui serait un plus dans si décrit dans l'aide.
Répondre