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

ASP.NET Discussion :

Charger des images en memoire


Sujet :

ASP.NET

  1. #1
    Membre habitué Avatar de Mozofeuk
    Inscrit en
    Novembre 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 326
    Points : 133
    Points
    133
    Par défaut Charger des images en memoire
    Tous d'abort bonjour a tous, voila j'ai realiser une application ASP.net C# qui permet de visionner une video d'une route prealablement selectionner sur une carte (API type GoogleMap).

    Pour permettre au utilisateur de visionner la route j'ai realiser un pseudo "diaporama" qui diffuse les photos prise(a intervalle regulier) de la route suffisament vite pour avoir l'impression d'une video.( tous le monde m'a compris ?)

    En local il n'y avais aucun probleme, les photos se charger suffisament vite pour etre afficher, mais lors du deploiement sur le serveur, l'image met trop de temps a s'afficher ce qui fait que mon diaporama passe a l'image suivante sans que la precedente est put etre affiché.

    Ma question est la suivante, est-il possible de charger une liste d'image en memoire sur le client ? Cela me permettrais de ne lancer la "video" qu'une fois que toutes les images (ou une partie) sont deja charger sur le client, permettant un affichage assez rapide des photo.


    Merci de vos reponse, Cordialement Mozo

  2. #2
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Bonjour,

    cela relève plus d'un problème javascript que .Net, lorsque tu changes d'image tu fais un PostBack sur le serveur ?

    SI oui il ne faudrait pas, il faudrait que tu envoie le rendu HTML de toutes tes images et que via Javascript tu changes le display des images pour passer de l'une à l'autre.

    De cette manière il n'y a pas d'accès réseau ou de retour serveur à chaque demande d'image, elles sont déjà présente c'est juste leur style qui est modifié à la volée.

    J'ai fait çà sur http://totems.bois.com en page d'accueil si tu veux voir le fonctionnement.

  3. #3
    Membre habitué Avatar de Mozofeuk
    Inscrit en
    Novembre 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 326
    Points : 133
    Points
    133
    Par défaut
    Justement il n'y a pas de postback a chaque changement d'image car sinon cela donne un effet flash assez desagreable.

    C'est d'ailleur via javascript que j'effectue le changement d'image (il est vrai que j'aurai du le mentionner)

    je met ma fonction javascript :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function ChangeImage()
    	{
    	    if (document.getElementById) {
    	        num = num + 1
    	        document.getElementById('img').src = vid[num];
    	    }  	   
    	    if (stop != true) {
     
            setTimeout("ChangeImage()", 100);
     
        }
    }
    mon tableau vid[] contient le chemin(en relatif) de toutes les images.

  4. #4
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Le fait de changer dynamiquement la src fait faire à ton navigateur un appel réseau afin de récupérer le fichier sur le serveur. Certains navigateurs gardent quand meme en cache ces images changés dynamiquement. Ce n'est pas le cas de IE6.

    Tu pourrais générer le code HTML de toutes tes images et jouer sur la propriété display avec javascript.

    Un bref exemple :
    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
     
    <script type="text/javascript">
    var imgs_count = 3;
    var num = 1;
    function ChangeImage()
    	{
    	    if (document.getElementById) {
                   document.getElementById('Img'+num).style.display = 'none';
    	        num = (num == imgs_count) ? 1 : num + 1;
    	        document.getElementById('Img'+num).style.display = 'block';
    	    }  	   
    	    if (stop != true) {
     
            setTimeout("ChangeImage()", 1000);
     
        }
    }
    </script>
     
    <div id="Img1">
        <img src="/images/limage1.jpeg" alt=""/>
    </div>
    <div id="Img2" style="display:none;">
        <img src="/images/limage2.jpeg" alt=""/>
    </div>
    <div id="Img3" style="display:none;">
        <img src="/images/limage3.jpeg" alt=""/>
    </div>
    En gardant la meme technique tu peux faire en sorte que le tableau vid[] contiennent les ids des div à afficher / cacher.

    L'utilisation de ces div peut te permettre d'implémenter facilement un fadeIn / fadeOut lors des transitions d'images, surtout si tu as du texte en plus des images... 'fin bref

  5. #5
    Membre habitué Avatar de Mozofeuk
    Inscrit en
    Novembre 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 326
    Points : 133
    Points
    133
    Par défaut
    Merci a toi Thomas, je n'avais pas penser a faire comme cela , au moins toutes les images seront charger des le load de la page c sa ?

    Certain de mes logs(routes) font plus quelque centaine de photo donc j'ai besoin de creer dynamiquement des div contenant des images pour pouvoir faire apparaitre disparaitre les div.

    J'ai fait comme cela pour creer mes div

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var d = '<div id="' + numeroDiv + '" style="display:none;"><img src="' + chemin + '" />';
    	    document.getElementById('vid').innerHTML = d;
    Mais je n'arrive pas a les atteindre, jai toujour l'erreur :

    "Erreur*: document.getElementById("a2") has no properties"

    une idée ?

    Merci encore thomas

  6. #6
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Points : 8 734
    Points
    8 734
    Par défaut
    Vérifies que document.getElementById('vid') ne retournr pas null

  7. #7
    Membre habitué Avatar de Mozofeuk
    Inscrit en
    Novembre 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 326
    Points : 133
    Points
    133
    Par défaut
    "Vérifies que document.getElementById('vid') ne retournr pas null "

    La div 'vid' est creer en dur comme ceci :

    [CODE]<div id="vid"></div>[CODE]

  8. #8
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Points : 8 734
    Points
    8 734
    Par défaut
    Oups, je parlais de document.getElementById("a2")

  9. #9
    Membre habitué Avatar de Mozofeuk
    Inscrit en
    Novembre 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 326
    Points : 133
    Points
    133
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var d = '<div id="' + numeroDiv + '" style="display:none;"><img src="' + chemin + '" /></div>';
    	    document.getElementById('vid').innerHTML = d;
    Bon deja j'avais oublier de fermer la div

    Mais cela ne marche toujours pas je n'arrive pas a la recuperer apres l'avoir creer

  10. #10
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Points : 8 734
    Points
    8 734
    Par défaut
    t'es sûr que numeroDiv a la bonne valeur?

  11. #11
    Membre habitué Avatar de Mozofeuk
    Inscrit en
    Novembre 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 326
    Points : 133
    Points
    133
    Par défaut
    j'ai fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (document.getElementById('a2') == null) { alert("qsdfqsdf")}
    et l'alert ne se produit

    merci de ton aide

  12. #12
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Points : 8 734
    Points
    8 734
    Par défaut
    fais un alert(document.getElementById('a2'))

  13. #13
    Membre habitué Avatar de Mozofeuk
    Inscrit en
    Novembre 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 326
    Points : 133
    Points
    133
    Par défaut
    il est null

  14. #14
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Points : 8 734
    Points
    8 734
    Par défaut
    bon bah voilà

  15. #15
    Membre habitué Avatar de Mozofeuk
    Inscrit en
    Novembre 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 326
    Points : 133
    Points
    133
    Par défaut
    Sa ne m'eplique pas pourquoi, je le creer normalement en faisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var d = '<div id="' + numeroDiv + '" style="display:none;"><img src="' + chemin + '" /></div>';
    	    document.getElementById('vid').innerHTML = d;
    jai verifier le "numeroDiv" est bon....

  16. #16
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Points : 8 734
    Points
    8 734
    Par défaut
    Bah c'est crade ça.
    Je pense pas que tu crées un objet div comme ça.
    Tu remplies juste une div existante avec le code html d'une div.

    Regarde ton code html généré et tu verras que ça peut pas marcher

  17. #17
    Membre habitué Avatar de Mozofeuk
    Inscrit en
    Novembre 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 326
    Points : 133
    Points
    133
    Par défaut
    Bon apres plusieur essai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert(document.getElementById('a2'))
    me donne null dés que ma div se trouve a l'interieur d'une autre div

  18. #18
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Points : 8 734
    Points
    8 734
    Par défaut
    Citation Envoyé par Mozofeuk Voir le message
    Bon apres plusieur essai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert(document.getElementById('a2'))
    me donne null dés que ma div se trouve a l'interieur d'une autre div
    C'est ce que je viens de t'expliquer

  19. #19
    Membre habitué Avatar de Mozofeuk
    Inscrit en
    Novembre 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 326
    Points : 133
    Points
    133
    Par défaut
    A oui escuse moi

    Si tu a un autre moyen pour creer des div dynamiquement autre que celui la je suis preneur

    Encore merci

  20. #20
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Points : 8 734
    Points
    8 734
    Par défaut
    ici

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 10
    Dernier message: 10/09/2008, 18h09
  2. [FLASH 8]charger des images et les rendre clikables
    Par jc_cornic dans le forum Flash
    Réponses: 3
    Dernier message: 31/08/2007, 11h37
  3. Problème pour charger des images externes
    Par teuzze dans le forum Flex
    Réponses: 1
    Dernier message: 14/05/2007, 15h37
  4. [astuce]charger des images JPEG,GIF
    Par mat.M dans le forum MFC
    Réponses: 4
    Dernier message: 06/06/2006, 19h40
  5. Réponses: 5
    Dernier message: 14/05/2006, 12h57

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