Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di james
    Registrato dal
    Jun 2002
    Messaggi
    1,481

    eseguire script a caricamento completato

    Scusate la domanda che i guru riterranno banale ma...dovrei eseguire uno script con la particolarità che deve essere lanciato quando il caricamento della pagina stessa sia completato al 100%, immagini comprese, c'è un modo??

    Per spiegare meglio il problema, ho una pagina php che impiega un bel po' di tempo per essere elaborata, e dovevo quindi fare una sorta di preload tipo quelli usati dalle compagnie aeree o portali di viaggi, che mentre fanno l'interrogazione delle disponibilità su vari server, visualizzano un msg di attesa che poi scompare quando la pagina con i risultati e pronta.

    Per fare una cosa simile, un utente sul forum php, mi ha consigliato di sovrapporre un div a schermo pieno che copre il contenuto della pagina e che poi scompare quando la pagina è caricata al 100%, ecco il motivo della mia richiesta...ovviamente vaaluto anche altri approcci se ce ne sono.

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    nella head:
    <script>
    window.onload=function(){document.getElementById(' attesa').style.display='none';}
    </script>
    body:
    <div id="attesa">qui metti messaggio o gif</div>

    e imposti con i css altezza larghezza e display
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it L'avatar di james
    Registrato dal
    Jun 2002
    Messaggi
    1,481
    Originariamente inviato da cavicchiandrea
    nella head:
    <script>
    window.onload=function(){document.getElementById(' attesa').style.display='none';}
    </script>
    body:
    <div id="attesa">qui metti messaggio o gif</div>

    e imposti con i css altezza larghezza e display
    Grazie mille! Lo provo immediatamente.

  4. #4
    Utente di HTML.it L'avatar di james
    Registrato dal
    Jun 2002
    Messaggi
    1,481
    Originariamente inviato da cavicchiandrea
    nella head:
    <script>
    window.onload=function(){document.getElementById(' attesa').style.display='none';}
    </script>
    body:
    <div id="attesa">qui metti messaggio o gif</div>

    e imposti con i css altezza larghezza e display

    ...non funzia...credo che la pagina php prima di essere impacchettata e spedita al client, viene prima elaborata...quindi può essere che quando è pronta il div che scompare in js giustamente neanche si vede? Infatti se tolgo l'evento windows.onload che lo fa scomparire il div c'è...credo che ci vorrà un altro sistema...

  5. #5
    ciao
    in teoria dovresti aspettare che il DOM si sia caricato.... ma ancora non basta perchè le immagini vengono caricate in modo "asincrono" quindi un modo banale potrebbe essere quello di precaricare le immagini in JS

    (fermatemi se dico una castroneria)




  6. #6
    Utente di HTML.it L'avatar di james
    Registrato dal
    Jun 2002
    Messaggi
    1,481
    Originariamente inviato da paxal78
    ciao
    in teoria dovresti aspettare che il DOM si sia caricato.... ma ancora non basta perchè le immagini vengono caricate in modo "asincrono" quindi un modo banale potrebbe essere quello di precaricare le immagini in JS

    (fermatemi se dico una castroneria)



    Questo non lo so, però il mio problema è diverso, il mio rallentamento nell'apertura non è dovuto al caricamento delle immagini o contenuti, ma all'elaborazione della pagina in php che sta a monte di tutto, non risolvo con la tecnica suggerita da cavicchiandrea, ora per fare i test, ho creato una pagina bianca con il codice di cavicchiandrea, e nella pagina ho incluso un iframe che punta alla pagina lenta. Però ora ho un altro problema...tutto quello che faccio dentro l'iframe, viene fatto dentro l'iframe...praticamente non esco mai dalla pagina che contiene l'iframe...si può fare qualcosa? Non so se sono stato chiaro...

  7. #7
    Utente di HTML.it L'avatar di james
    Registrato dal
    Jun 2002
    Messaggi
    1,481
    praticamente quando clicco anche un link o un faccio il submit di un form, io vorrei "uscire" dall'iframe ed aprire la relativa pagina, in modo che la pagina sulla barra di navigazione sia corretta e non sempre la pagina che contiene l'iframe.

  8. #8
    SE:
    Alla pagina 'lenta ad essere elaborata' arrivi, come presumo, da una pagina precedente, sia che venga cliccato un link sia che venga cliccato un submit di una form, il browser continua a far vedere all'Utente la pagina precedente finch&egrave; il server non inizia a mandare la pagina nuova.

    QUINDI...

    &Egrave; sufficiente che il div con 'attendere, prego' sia posizionato nella pagina precedente, e fatto apparire a fronte dell'evento che manda alla pagina 'lenta'.
    Ci penser&agrave; poi il browser a cancellare detto div, visto che sostituir&agrave; tutto con il contenuto della nuova pagina!

    ALLORA:
    rifacendomi a ci&ograve; che disse cavicchiandrea, tu inserisci nella pagina precedente un div:
    codice:
    <div id="attesa">qui metti messaggio o gif</div>
    e imposti con i css altezza larghezza e display a 'none'
    poi, ad esempio, sull'onclick del link alla pagina 'lenta' ovvero all'onsubmit del form che manda alla pagina 'lenta:
    codice:
    document.getElementById('attesa').style.display=''; // per farlo apparire
    HTH
    Zappa
    [PC:Presario 2515EU][Cpu:P4@2.3GHz][Ram: 512M][HDU:80G@5400 RPM]
    [Wireless:LinkSys][OS: Ubuntu 9.04 - Jaunty Jackalope]

  9. #9
    Utente di HTML.it L'avatar di james
    Registrato dal
    Jun 2002
    Messaggi
    1,481
    Originariamente inviato da homezappa
    SE:
    Alla pagina 'lenta ad essere elaborata' arrivi, come presumo, da una pagina precedente, sia che venga cliccato un link sia che venga cliccato un submit di una form, il browser continua a far vedere all'Utente la pagina precedente finch&egrave; il server non inizia a mandare la pagina nuova.

    QUINDI...

    &Egrave; sufficiente che il div con 'attendere, prego' sia posizionato nella pagina precedente, e fatto apparire a fronte dell'evento che manda alla pagina 'lenta'.
    Ci penser&agrave; poi il browser a cancellare detto div, visto che sostituir&agrave; tutto con il contenuto della nuova pagina!

    ALLORA:
    rifacendomi a ci&ograve; che disse cavicchiandrea, tu inserisci nella pagina precedente un div:
    codice:
    <div id="attesa">qui metti messaggio o gif</div>
    e imposti con i css altezza larghezza e display a 'none'
    poi, ad esempio, sull'onclick del link alla pagina 'lenta' ovvero all'onsubmit del form che manda alla pagina 'lenta:
    codice:
    document.getElementById('attesa').style.display=''; // per farlo apparire
    HTH
    Zappa
    ...questa è una genialata...stavo perdendo un sacco di tempo ad inventarmi un sistema assurdo con gli iframe quando effettivamente così è una gran caXXata...


    Grazie!

  10. #10
    Originariamente inviato da james
    ...questa è una genialata..
    Grazie per l'apprezzamento!
    Non ti immagini quante volte l'ho usato, 'sto metodo!

    Zappa
    [PC:Presario 2515EU][Cpu:P4@2.3GHz][Ram: 512M][HDU:80G@5400 RPM]
    [Wireless:LinkSys][OS: Ubuntu 9.04 - Jaunty Jackalope]

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.