Page 1 sur 2

Attendre le chargement d'une page

Publié : jeu. 29/mai/2014 0:20
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

Re: Attendre le chargement d'une page

Publié : jeu. 29/mai/2014 8:57
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"

Re: Attendre le chargement d'une page

Publié : jeu. 29/mai/2014 9:23
par falsam
Bonjour Dobro.

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

Image

Re: Attendre le chargement d'une page

Publié : jeu. 29/mai/2014 9:40
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

Re: Attendre le chargement d'une page

Publié : jeu. 29/mai/2014 11:04
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 :)

Re: Attendre le chargement d'une page

Publié : jeu. 29/mai/2014 12:11
par falsam
Soit patient Dobro, je vais te répondre ..... le temps de digérer ça !!

Re: Attendre le chargement d'une page

Publié : jeu. 29/mai/2014 13:08
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 !

Re: Attendre le chargement d'une page

Publié : jeu. 29/mai/2014 13:19
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 ...

Re: Attendre le chargement d'une page

Publié : jeu. 29/mai/2014 13:45
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 !

Re: Attendre le chargement d'une page

Publié : jeu. 29/mai/2014 14:35
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:

Re: Attendre le chargement d'une page

Publié : jeu. 29/mai/2014 15:03
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.

Re: Attendre le chargement d'une page

Publié : jeu. 29/mai/2014 15:06
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:

Re: Attendre le chargement d'une page

Publié : jeu. 29/mai/2014 16:50
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.

Re: Attendre le chargement d'une page

Publié : jeu. 29/mai/2014 17:56
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.

Re: Attendre le chargement d'une page

Publié : jeu. 29/mai/2014 18:47
par nico
C'est le genre de chose qui serait un plus dans si décrit dans l'aide.