• User Attivo

    il codice che hai messo prima non ci va...
    scrivi all'inizio dopo <body> pagina temporanea <?php flush(); ?> e poi il resto


  • Super User

    I problema è che uso smarty, e non credo di poter mettere roba dentro body prima di fare il resto. Cioè, io ho un template smarty, dentro il template richiamo la funzione che cerca e poi quando questa restituisce il codice html faccio visualizzare il template di smarty, quindi mi sa difficile metterlo dopo body... Prima di html verrebbe scartato?


  • User Attivo

    prima di html fa schifo. ma quanto ci mette a fare la query?


  • Super User

    qualche secondo. Fa schifo che vuol dire, va o non va? Cmq ad esempio expedia lo mette prima dell'HTML....


  • User Attivo

    si ma non è validato a me non piace come sistema.


  • Super User

    Capisco, ma in alternativa come potrei fare? Sto provando con una popup ma non mi piace e poi con i blocca popup non si vedrebbe...


  • User Attivo

    Ciao cali1981,
    il segreto è mettere display:block nello style del div. Così la pagina comparirà solo quando il div scomparirà.

    per la classe del div usa ad esempio:

    #preload {
    **visibility: hidden; **
    height:50%;
    border: 10px dashed #154478;
    **width:80%; **
    **margin: 0px; **
    **margin-top: 100px; **
    **padding: 50px; **
    font-size:22px;
    color: #FF3B00;
    **font-weight:bold; **
    display:block;
    }

    per quanto concerne il div, effettivamente prima di tutto il codice html è meglio (dispiace anche a me... lo so... :x):

    <div id="preload" style="visibility: visible;">
    One moment please...<br><br>
    <?php echo $doma2; ?> is searching multiple suppliers for the best deals.<br>
    Please wait while we gather your results...<br><br>
    <table cellspacing="0" cellpadding="0" border="0">
    <tr><td><img src="img/waitingsx.gif" alt="" border="0"></td>
    <td><img src="img/waiting.gif" alt="" border="0"></td>
    <td><img src="img/waitingdx.gif" alt="" border="0"></td></tr></table>
    </div>
    </div>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    </html>...

    Occhio alla parte in rosso...

    Nella pagina web, caricati questo javascript:

    var isNav, isIE
    if (parseInt(navigator.appVersion) >= 4)
    { if (navigator.appName == "Netscape")
    { isNav = true }
    else
    { isIE = true }
    }

    function hideLayer(layername)
    {
    if (isNav)
    { document.layers[layername].visibility = 'hidden'; }
    else //Must be IE
    {document.all[layername].style.visibility = 'hidden';}
    }

    che ti servirà per nascondere il div a caricamento avvenuto.

    Infine, in fondo alla pagina (in modo cioè che sia caricato alla fine) metti:

    <img src="p.gif" width="0" height="0" onload="javascript:hideLayer('preload');">

    Ovviamente se manca p.gif il div non scompare... 😄

    Il tutto appena sfornato per le mie esigenze:fumato:

    Se trovi un'immaginetta di scorrimento carina... postala che serve anche a me... 😉
    :ciauz:


  • Super User

    ok provo. Per le immagini prova vedere ajaxload.info


  • User Attivo

    Integro e correggo:

    <style>#preload {font-size:20px;border: 1px solid #0D447F;background: #E7E9FE; margin: 0px; padding: 0px; color: #FF3B00;font-weight: bold; position: absolute; left: 12%; top: 20%; width:76%; height:40%; display:block; visibility: hidden;}</style>
    <center><div id="preload" style="visibility: visible;">
    <br>One moment please...<br>
    <br>
    <img src="img/circle.gif" alt="" border="0">
    </div></center>

    Occorre infatti aggiungere il position:absolute nello stile. Inoltre, se lo stile è caricato direttamente nel doc html prima di ogni cosa, si evita la frazione di secondo del div non formattato che si avrebbe se lo stile fosse caricato dopo.

    Per la funzione javascript, quella postata sopra mi dava errore con FF, ho sistemato il tutto con un'unica istruzione valida sia su IE6 che su FF:

    function hideLayer(layername)
    {
    document.getElementById(layername).style.visibility = 'hidden';
    }

    :ciauz:


  • Super User

    Grazie, ora così sembra funzionare! Solo una cosa, senza javascript il sito in pratica non funziona, ma per evitare che utenti senza js vedano il div, potrei metterlo come z-index basso o altri accorgimenti del genere in modo che anche senza eseguire il js non dia fastidio?


  • User Attivo

    Effettivamente si potrebbero tentare alcune strade...

    Per esempio provare a ridefinire lo stile mettendo un dipslay:none, alla fine della pagina... oppure giocare con gli z-index, ma non ho una precisa idea di ciò che verrà fuori...

    Fammi sapere se addivieni a qualcosa di utile! 😄