Autore Topic: Componente webview ed aggiornamento pagine  (Letto 856 volte)

Offline luca.decarlo

  • Gamberetto
  • *
  • Post: 49
    • Mostra profilo
Componente webview ed aggiornamento pagine
« il: 23 Giugno 2017, 12:43:49 »
Ho un programmino che estrae dati da paginegialle e funziona perfettamente, ma vorrei migliorare il momento di attesa durante il caricamento della pagina successiva.

l'evento .progress non è sicuro in quanto lo monitorizzo con una progressbar e durante il caricamento va vari volte da 0 a 100%

Ora eseguo un ciclo sul  contenuto della pagina attendendo che ci siano dei valori relativi alla pagina corretta, ma spesso paginegialle cambia e devo riadattare.

Qualche consiglio?

Offline allegfede

  • Gran Maestro dei Gamberi
  • *****
  • Post: 738
    • Mostra profilo
Re:Componente webview ed aggiornamento pagine
« Risposta #1 il: 23 Giugno 2017, 13:32:49 »
posta qualche estratto di codice, senno' dovremo organizzare una lettura del pensiero a distanza :D
se corri, morirai stanco (motto degli sniper)

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.244
  • Tonno verde
    • Mostra profilo
Re:Componente webview ed aggiornamento pagine
« Risposta #2 il: 23 Giugno 2017, 13:43:33 »
 :D
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline luca.decarlo

  • Gamberetto
  • *
  • Post: 49
    • Mostra profilo
Re:Componente webview ed aggiornamento pagine
« Risposta #3 il: 23 Giugno 2017, 14:04:06 »
non è un problema postare del codice, ma chiedevo un consiglio sulla strada migliore o più funzionale.

1. apro una form con webview già su paginegialle.it ed attendo che l'utente scelga cosa e dove vuole ricercare
2. l'utente clicca su "estrai", verifico che la pagina contenga degli indirizzi, ed altre cose tipo il numero totale di indirizzi, il numero di nominativi per pagina, ecc
3. leggo tutti i dati dall html e compilo una gridview fino a fine pagina
4. faccio caricare la pagina successiva (se non è l'ultima)

qui inizia il quesito, come posso fare a capire quando la pagina è stata caricata completamente per rieseguire il ciclo (punto 3)

Offline luca.decarlo

  • Gamberetto
  • *
  • Post: 49
    • Mostra profilo
Re:Componente webview ed aggiornamento pagine
« Risposta #4 il: 23 Giugno 2017, 14:05:06 »
si in realtà sono un po' "ermetico" ma dopo anni di sintesi ... sintetizzo troppo!!!!  ;D ;D


Offline luca.decarlo

  • Gamberetto
  • *
  • Post: 49
    • Mostra profilo
Re:Componente webview ed aggiornamento pagine
« Risposta #5 il: 23 Giugno 2017, 14:36:31 »
Questo è il punto dove attendo il caricamento della pagina successiva, ma spesso mi cambiano il sistema e devo correggere.

Codice: [Seleziona]
      WebView1.Url = sTmp
      Wait 0.5
     
      iPos = 0
      iTimer = 0
      pnlAttesa.Visible = True
           
      While iPos = 0
        iPos = InStr(WebView1.HTML, Chr(34) & "elementNum" & Chr(34) & ">1.<")
        Inc iTimer
        lblTimer.Caption = iTimer
        Wait 0.5
      Wend
     
      ilastPos = 0
      sHTML = WebView1.HTML
      pnlAttesa.Visible = False

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.244
  • Tonno verde
    • Mostra profilo
Re:Componente webview ed aggiornamento pagine
« Risposta #6 il: 23 Giugno 2017, 14:45:19 »
Il codice postato non mi serve.
Occorre "sintetizzarlo" in modo che si possa provare qualcosa che funzioni.  :D

Credo che la risposta sia nel quesito numero uno, usi il criterio di ricerca per verificare riga per riga cosa e dove caricare e lo conti con inc. Quando il flusso si interrompe apri la pagina successiva e riprendi il conteggio fino a che i criteri sono true.
Ottieni il numero per dividere la progressbar e rifai tutto daccapo caricando realmente le pagine o parti di esse, mostrando il progresso reale.

 :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline luca.decarlo

  • Gamberetto
  • *
  • Post: 49
    • Mostra profilo
Re:Componente webview ed aggiornamento pagine
« Risposta #7 il: 23 Giugno 2017, 15:03:45 »
Come ho fatto nell'esempio funziona, pensavo ci fosse un modo più corretto ed univoco per capire quando un pagina è stata caricata!

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.244
  • Tonno verde
    • Mostra profilo
Re:Componente webview ed aggiornamento pagine
« Risposta #8 il: 23 Giugno 2017, 15:11:54 »
Io nel codice che hai postato non vedo cicli annidati e pertanto non sono in grado di capire se quanto ti ho suggerito è uguale a ciò che hai già fatto.
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.723
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Componente webview ed aggiornamento pagine
« Risposta #9 il: 23 Giugno 2017, 15:20:45 »
come posso fare a capire quando la pagina è stata caricata completamente
Dovrebbe esserti utile l'evento "_Load( )" della Classe "WebView".   :-X


http://gambaswiki.org/wiki/comp/gb.qt4.webkit/webview/.load?nh

Vedi anche:
http://gambaswiki.org/wiki/comp/gb.qt4.webkit/webview/.progress?nh


« Ultima modifica: 23 Giugno 2017, 15:28:33 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.244
  • Tonno verde
    • Mostra profilo
Re:Componente webview ed aggiornamento pagine
« Risposta #10 il: 23 Giugno 2017, 16:05:22 »
Forse non ho capito il problema, se è così mi scuso, ma nel suo caso progress non serve perché credo funzioni solo sulla pagina.
Lui secondo me deve trovare il modo di simulare il caricamento voce per voce contare suddividere una progressbar e caricare realmente le voci, altrimenti la progressbar andrà avanti e indietro.

P.S. Quando dico:
Citazione
Occorre "sintetizzarlo" (il codice) in modo che si possa provare qualcosa che funzioni.

Intendo dire che se ci teniamo che ci venga data una soluzione, non possiamo pretendere che sia chi ci rispondere a creare un programma funzionante che sintetizzi il problema e ci faccia vedere come potremmo fare.
Dobbiamo essere noi a creare il programma e chiedere agli altri se secondo loro c'è un sistema migliore di quello da noi fatto; oppure, perché fatto così non mi funziona?
Sono stato spiegato mo?
« Ultima modifica: 23 Giugno 2017, 16:23:16 da Gianluigi »
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.723
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Componente webview ed aggiornamento pagine
« Risposta #11 il: 23 Giugno 2017, 17:27:32 »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »