IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Routine basic pour préchargement d'images


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 107
    Points : 50
    Points
    50
    Par défaut Routine basic pour préchargement d'images
    Bonjour,

    J'ai développé un petit site web en xhtml Transitionnal1.0 avec MSVStudio5. Mon site possède au total une quinzaine de jpg, variant de 35 Ko à 180Ko.

    L'hébergement est gratuit mais comme il se doit, l'hébergeur offre une faible bande passante.


    Je souhaite au moins pouvoir précharger ces 15 images à l'avance, côté client, lors du chargement de l'index.html.

    Après plusieurs recherches d'explications et de codes (qui semblaient très bien fonctionner), j'ai utilisé le simple code suivant:

    1. Dans l'entête:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    <script language="javascript" type="text/javascript">
     
    function load() {
     
    	if (document.images) {
     
    		this.length=load.arguments.length;
    		for (var i=0;i<this.length;i++) {
     
    			this[i+1]=new Image();
    			this[i+1].src=load.arguments[i];
    		}
    	}
    }
    function preload() {
     
    // Cette fonction charge dans le cache toutes les images passées en paramètre
    	var temp=new load( "images/mon_image1.jpg","images/mon_image2.jpg")
     
    }
     
     
    </script>
    2. Pour l'appel:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <body  onload="preload()">

    J'ai testé ce code sur les dernières vesions GoogleChrome, IE et FireFox. Au chargement de l'index.html,
    je m'attends à ce que ce soit plus long, mais le code ne fonctionnne pas.

    Manque-t-il une instruction, ou un détail contextuel ?

    Merci pour votre aide.

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this[i+1].src=arguments[i];

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 107
    Points : 50
    Points
    50
    Par défaut
    D'accord merci.

    J'ai tout retesté avec la correction, malheureusement ça donne le même résultat: aucune image ne se place en mémoire lors du chargement de l'index.html.

    Que peut-il manquer à ce code ?

    Merci

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 107
    Points : 50
    Points
    50
    Par défaut
    Bonjour,

    Le préchargement fonctionne, mais il s'exécute avant l'affichage approprié.
    Je souhaite tout d'abord afficher la div "t_load" durant le chargement, et lorsque que celui-ci est entièrement terminé, afficher ensuite la div "t_lang".
    De quelle façon "interagir" sur l'ordre d'exécution (si possible) ? merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    function prechargerImages() 
     {  
         if (document.images) 
         {
            var f_Image=prechargerImages.arguments;
            var prechargeTableau = new Array();
            for (var i=0; i < f_Image.length; i++)
                {
                    prechargeTableau[i]= new Image;
                    prechargeTableau[i].src=f_Image[i];                      
                }            
            }
     
    //affiche tjrs la div AVANT le chargement...
            afficher('t_lang');            
        }
     
     
    function afficher(id) 
    {
     if (id=='t_load') 
        {
        document.getElementById('t_load').style.display='table';
        document.getElementById('t_lang').style.display='none';     
        }
    else if (id=='t_lang')
        {
        document.getElementById('t_lang').style.display='table';   
        document.getElementById('t_load').style.display='none';
        } 
     }

Discussions similaires

  1. Réponses: 3
    Dernier message: 03/11/2007, 21h47
  2. Réponses: 13
    Dernier message: 23/12/2004, 18h01
  3. Réponses: 7
    Dernier message: 21/10/2004, 09h13
  4. Comment faire pour afficher une image ds une dbgrid
    Par totomaze dans le forum Bases de données
    Réponses: 2
    Dernier message: 16/10/2004, 15h31
  5. Mkisofs - problème pour créer une image
    Par tomnie dans le forum Applications et environnements graphiques
    Réponses: 4
    Dernier message: 04/08/2004, 11h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo