Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Window.onload - soluzione finale(!!!)

    Prima di tutto dico grazie a Peter e a colui che ha tradotto il suo articolo su HTML.it, il quale mi ha ispirato per una soluzione alternativa al window.onload.

    La soluzione è a dir poco semplice, il problema è se funziona su Safari e Konqueror ( su IE6-7, Moz e Opera funziona benissimo ).

    Se ci sono tester, visto che non li possiedo, ben venga.


    E' tutto qui: http://blogmega.splinder.com/post/12...IONE+FINALE%21


    Godetevela, e soprattutto ditemi che ne pensate

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Metodo oserei dire... azzardato e sul mio povero PII ha effetti soporiferi... ma buona logica e intuizione... rimango in attesa dei test sull'efficacia (compatibilita')

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    Originariamente inviato da br1
    Metodo oserei dire... azzardato
    Beh, in effetti!
    Ma per fortuna pare che non dia fastidio a nessuno, almeno spero...

    In fondo l'ho buttata li in 10 minuti

    PS:
    Ho avuto anche il tempo di pensare a una soluzione di riserva, per altro ancora più azzardata...

  4. #4
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    come e' stato fatto notare in passato non e' una scelta particolarmente felice parlare di soluzione finale

    dal punto di vista concettuale:
    sarebbe tutto ok se si avesse la garanzia che l' alberatura DOM e' completamente caricata nel momento in cui questa condizione si verifica, if(document.body) {
    questo, da quanto ne so, non e' sempre vero

    non penso che si sarebbero andati a scomodare defer, readyState ed il resto se la soluzione fosse stata cosi' elementare e totalmente crossbrowser nella sua semplicita'...

    ciao

  5. #5
    La mia soluzione non si basa assolutamente sul fatto che, caricato il body, anche tutto il dom è caricato.
    Questa soluzione farebbe pena.
    Essa si basa su due principi:
    1) caricato il <body>, anche l'elemento <html>, suo parentNode è caricato;
    2) la tecnica dello script a fondo pagina, come detto nell'articolo è assolutamente sicura.

    Per quanto riguarda il fatto di soluzione finale ti posso dare pienamente ragione; ma non è detto che la soluzione più complessa sia quella più corretta

    Poi non lo so, potrebbe effettivamente essere una soluzione troppo semplicistica, ma onestamente non riesco a immaginare casi in cui non funzioni... L'unico dubbio è che sia crossbrowser; non posso dirlo se non ci sono tester.

    X br1
    sul mio povero PII ha effetti soporiferi
    Non volendo ho messo il timeout a 1 millisecondo, ora lo metto a 10.

  6. #6
    Spiego meglio onde evitare dubbi.

    Prima di tutto verifico che il body esista; il body esiste anche se i suoi figli non sono stati caricati.
    E se non è caricato controllo ogni 10 millisecondi.

    Una volta caricato inserisco uno script NON alla fine del body, ma tra </body> e </html> ( ecco a cosa si riferiva br1 parlando di azzardato )


    Ciò assicura che lo script sia eseguito subito dopo che gli elementi sono stati caricati.

    O forse c'è qualcosa che mi sfugge?

  7. #7
    Visto che a quanto pare dubbi ce ne sono parecchi , ho deciso di fare un test al limite.

    Nella pagina http://www.sitomega.net/galleria.php...a=Fantascienza
    viene risolto il problema di far partire lightbox al caricamento del dom, anche se le thumbnail sono ancora in fase di download.
    Stranamente ( per fortuna ) la tecnica da il meglio di se in IE; in fondo con FF e Op c'è il DOMContentLoaded.

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.