Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    209

    cache e onload di immagini in ie

    Sto scrivendo uno script per il preload delle immagini, ma ho scoperto che l'immagine viene cachata internet exploerer 6 e anche 7 ha un problemino: non chiama l'onload (a cui ho associato l'apertura di una prototype window e un l'eliminazione della gif del preloader).

    Esiste un metodo per controllare se l'immagine è già in cache o per aggirare il problema?

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    209
    per il momento l'unica cosa che ho fatto per 'risolvere il problema' è aggiungere "?"+new Date().getTime() al nome della big, funziona ma non è molto buon per la banda!

    non è succusso a nessuno di trovare problemi con l'evento onload delle immagini caricate con new Image()?

  3. #3
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    si', e' un problema inatteso e molto fastidioso
    l' ho risolto a volte in modi diversi, caso per caso, sempre complicando la linearita' dello script
    lascia un link e se posso do un' occhiata

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    209
    preferirei mandartelo in privato, ci lavoro con javascript, preferirei che il codice non fosse disponibile a tutti, almeno per il momento.

  5. #5
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    semplifica di molto e pubblica
    serve anche a chiarire le idee a te stesso

    altrimenti ...anche io ci lavoro col javascript...

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    209
    Codice PHP:
    var Rules = {
        
    '.small': function(el){
            
    el.onclick=openWinPopUp;
        }
    };

    window.onload=function(){
         
    EventSelectors.start(Rules);
    };

    var 
    observer = {
        
    onDestroy : function(eventwin){
            
    this.opener=win.opener;
            new 
    Effect.Opacity(this.opener,{ 
                    
    duration0.5
                    
    transitionEffect.Transitions.linear
                    
    from0.5to1.0
                 
    }
            );
            $(
    this.opener).onclick=openWinPopUp;
        }
    };

    Windows.addObserver(observer);

    var 
    openWinPopUp= function(){
        
    this.onclick=null;
        new 
    Effect.Opacity(this.id,{ 
                
    duration1.0
                
    transitionEffect.Transitions.linear
                
    from1.0to0.5 
             
    }
        );

        if(!
    this.image){ //QUI
            
    this.loader_id=this.id+'_loader';
            new 
    Insertion.After(this,'<div class="loader" id="'+this.loader_id+'"></div>');
            
    this.loader=$(this.loader_id);
            
    this.offset=Position.cumulativeOffset(this);
            
    Element.setStyle(this.loader,{
                
    top:this.offset[1]+(this.height-parseInt(Element.getStyle(this.loader,'height')))/2+'px',
                
    left:this.offset[0]+(this.width-parseInt(Element.getStyle(this.loader,'width')))/2+'px',
                
    display:'block'
            
    });

            
    this.image=new Image(); //DA QUI
            
    this.image.info=this.getAttribute('info');
            
    this.image.opener=this.id;
            
    this.image.src=this.getAttribute('big_src')+'?'+new Date().getTime();
            
    this.image.onload=openWin;
        }else{
            
    this.image.onload();
        }
    //A QUI
    };

    openWin=function(){
        
    this.loader=$(this.opener+'_loader');
        if(
    this.loader)Element.remove(this.loader);
        var 
    win = new Window(
            
    'big_'+this.opener,{
                
    className'dialog'
                
    width:this.width
                
    height:this.height
                
    zIndex100
                
    resizabletrue,
                
    title:this.info,
                
    showEffect:Effect.Appear
                
    hideEffectEffect.Fade
                
    showEffectOptions:{duration0.2},
                
    hideEffectOptions:{duration0.2},
                
    maximizable:false,
                
    minimizable:false,
                
    draggable:true
                
    wiredDragfalse
            
    }
        );
        
    win.getContent().appendChild(this);
        
    win.setDestroyOnClose();
        
    win.showCenter();
        
    win.setZIndex(Windows.maxZIndex+20);
        
    win.opener=this.opener;
    }; 
    Qua c'è tutto, l'importante è che non sia presente il marchio aziendale e il sito, cosa mi puoi dire?

    //QUI e //DA QUI //A QUI sono i marker dove si svolge il misfatto

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    209
    Xinod ci 6?

  8. #8
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    Originariamente inviato da Xinod
    lascia un link e se posso do un' occhiata
    visto che hai fretta non lo so fare

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    209
    ma te come facevi a raggirare l'onload?

  10. #10
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    ma sbaglio o se inizializzi una new image ogni volta e setti l' onload prima dell' src l' immagine viene ricaricata (o anche solo ripescata dalla cache) e l' onload scatta come e' lecito aspettarsi?
    codice:
    <script type="text/javascript">
    <!--
    var caricate=0;
    function carica(percorso){
    	// document.getElementById('ingrandita').src='empty.gif';
    	// alert('inizio caricamento');
    	var imm=new Image();
    	imm.onload=cambia;
    	imm.src=percorso;
    }
    function cambia(){
    	document.title='imm.onload effettuati: '+caricate++;
    	var DOMimg=document.getElementById('ingrandita');
    	DOMimg.src=this.src;
    	DOMimg.style.width=this.width+'px';
    	DOMimg.style.height=this.height+'px';
    }
    //-->
    </script>
    codice:
    carica xl/06403.jpg
    
    carica xl/06404.jpg
    
    [img]empty.gif[/img]

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.