Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Preload e redirect

  1. #1

    Preload e redirect

    Ciao a tutti. Esiste una maniera per scriptare una pagina in modo che, solo dopo aver completato il caricamento di determinate immagini, porti l'utente ala pagina successiva?
    Mi spiego meglio: ho questo sito piuttosto pesante da caricare a causa della grafica. Vorrei evitare all'utente lo strazio di assistere al lento caricare di ogni immagine sulla pagina che sta visualizzando, e ho quindi creato la mia classica "pagina di copertina", piazzando nel body, onload, uno script di preload delle immgini che poi si troveranno nel sito e di seguito un gotourl per portarlo automaticamente all'interno del sito una volta completato il caricamento.
    Il problema è che il gotourl viene eseguito immediatamente (o quasi), senza attendere che il preload sia completato, il tutto quindi si rivela alquanto inutile.
    Quello che dovrebbe fare è invece: eseguire il preload, completare il preload, eseguire il gotourl.

    Tenete conto che non sono per nulla avvezzo allo scripting, infatti uso dreamweaver per gestire i pochi e semplici script di cui solitamente ho bisogno (questo compreso, solo che stavolta evidentemente dreamweaver non basta).

    consigli? tutorial? script da copiare/incollare sono beneaccetti

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    La cosa e` fattibile, facendo seguire alle istruzioni di precaricamento quelle per il via al tour.

    Potresti fare una cosa di questo tipo:
    <body onload="precaricamento(); start_tour();">

    Solo che non sapendo come chiami le due cose attualmente, non posso dirti come modificare.

    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    allora, ti incollo lo script come me l'ha fatto dreamweaver, spero sia utile:


    nell'head:


    <script language="JavaScript" type="text/JavaScript">
    <!--
    function MM_goToURL() { //v3.0
    var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
    for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
    }

    function MM_preloadImages() { //v3.0
    var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
    }
    //-->
    </script>



    nel body:

    <body background="sfondoindex.jpg" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" onLoad="MM_preloadImages('sfondodx.jpg','sfondosx. jpg','sfondomenu.jpg','sfondomenu1.jpg','sfondomen u3.jpg','sfondometal.jpg');MM_goToURL('parent','fr ame.htm');return document.MM_returnValue">



    ribadisco di non capirci una mazza di javascript, ma da quel che vedo quello che mi hai consigliato è abbastanza simile a quello che già ho. In tutti e due i casi nel body ci sono la funzione di preload, seguita da un bel ; e subito dopo la funzione che richiama il gotourl.

  4. #4

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Gli script utilizzano funzioni deprecate, per cui immagino che sia una versione vecchia di DW.
    Comunque dovrebbero funzionare in quasi tutti i browser di oggi (ma probabilmente no in quelli di domani).

    In effetti in apparenza la funzione fa quello che chiedi, solo che con lo script tu vai a sovrascrivere il parent e con esso la pagina in cui sei: questo non piace ad IE (che non te lo lascia fare, credo).

    Prova a mettere un target diverso da parent (un altro frame, oppure una nuova finestra), e vedi cosa succede.

    Potrebbe funzionare anche togliendo il return MM...; dal JS dell'onload.

    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  6. #6
    ho tolto il return MM e cambiato il frame di destinazione, ma i risultati sono scoraggianti.
    L'eliminazione del return MM non ha cambiato sostanzialmente niente. Lo stesso mettendo top o self nella destinazione, non cambia nulla, continua ad aprire la seconda pagina prima di aver completato il preload delle immagini. Il problema persiste.
    Se invece metto blank mi dà errore e non apre niente.

    non esiste un comando o un tipo di sintassi per dire al browser di non processare il secondo comando (gotourl) prima che il primo (preload) non sia stato portato a termine? perchè evidentemente così com'è la cosa non funziona: processa i due comandi contemporaneamente, o cmq uno di seguito all'altro, senza aspettare che il primo sia completo.


    ps: il prog che uso è dreamweaver MX, del 2002 se non erro

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Se dovessi farlo io, a questo punto butterei via tutte le funzioni MM e me le farei io. Ma io non avrei comunque usato le funzioni MM.

    Ora io non ho tempo per riscrivere quelle funzioni daccapo, usando solo strumenti noti, forse qualcun altro nel forum ha voglia di farlo.
    In fondo quello che chiedi non e` una cosa molto difficile, anche se richiede una certa padronanza di JS.

    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  8. #8
    Non avendo nemmeno idea di cosa sia una funzione MM, mi rimetto alla benevolenza della community, nel caso qualcuno volesse darmi qualche consiglio dettagliato su come cavarmela, o indicarmi tutorial o simili che espongano un problema simile al mio.

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.