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 :

Eviter de lancer plusieurs fois un téléchargement


Sujet :

JavaScript

  1. #1
    Membre confirmé Avatar de Aizen64
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    561
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 561
    Points : 462
    Points
    462
    Par défaut Eviter de lancer plusieurs fois un téléchargement
    Bonjour,

    Premier point, je me demande comment on peut apprécier ce foutu language. Sérieusement, JS c'est moche et chiant à debugger.

    Passons au coeur du problème :

    j'ai un bout de code en backend qui me créé une archive de n fichiers, compte tenu qu'il peut y avoir de nombreux fichiers dans cette archive, la requête HTTP peut prendre du temps puisque je dois récupérer ces fichiers un à un.

    Je souhaite donc :
    1 : mettre un loader le temps que la requête se fasse et ignorer toute autre requête tant que ce loader est encore affiché : tout est bon là dessus.

    Mon lien (balise 'a') pointe sur un iframe via l'attribut target, donc il me semble logique de changer l'attribut src de l'iframe en question et d'y mettre l'attribut href du lien. Au chargement du lien, lors du chargement de l'iframe (onload) il faut juste virer le loader.

    Dans l'absolu, à la base, je comptais faire une requête AJAX, ajouter le loader et renvoyer la réponse HTTP au client qui est une grosse chaine de caractères représentant le fichier mais là ça coince.

    Je recois bien la réponse avec le contenu du fichier et les en-tête sont OK.

    JS standard et jQuery acceptés dans les réponses.
    Exprimer une différence d'opinion vaut mieux que :

  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 637
    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 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    avec jquery il y a les callbacks
    il suffit de désactiver tout sur la page et le réactiver sur le success ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre confirmé Avatar de Aizen64
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    561
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 561
    Points : 462
    Points
    462
    Par défaut
    Ce qui ne répond pas à ma question, je peux transférer le href du lien vers l'iframe via l'attribut src, cela dit, comment je sais que le lien en question est totalement chargé ?

    Un exemple simple mais fonctionnel est le bienvenu.
    Exprimer une différence d'opinion vaut mieux que :

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 112
    Points
    44 112
    Par défaut
    Bonjour,
    Premier point, je me demande comment on peut apprécier ce foutu language. Sérieusement, JS c'est moche et chiant à debugger.
    c'est balot j'avais une solution mais à la réflexion elle est moche et ch!$*te à déboguée !


  5. #5
    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 637
    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 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    Cela répond à ta question si tu comprends la réponse...

    Tu parles d'iframe ...
    je peux transférer le href du lien vers l'iframe via l'attribut src
    sur un iframe tu peux passer par le onload

    Je proposais ajax ... tu pourrais alors utiliser les callback sus mentionnés ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  6. #6
    Membre confirmé Avatar de Aizen64
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    561
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 561
    Points : 462
    Points
    462
    Par défaut
    Je ne comprend pas justement.
    Je veux bien désactiver mon bouton qui lance le dl, et le réactiver lors du callback success de jQuery, je ne vois pas en quoi cela va m'aider à transférer le fichier à l'utilisateur.
    Exprimer une différence d'opinion vaut mieux que :

  7. #7
    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 637
    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 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    J'ai l'impression que tu donnes toi même la réponse à ta question ...

    ton lien href pointe sur une iframe ...

    lors du click, desactive le lien, affiche le loader, modifie le src de l'ifrmae
    et sur le onload de l'iframe masque le loader et réactive ou non le lien ...

    il s'agit juste de communication entre mère et fille ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

Discussions similaires

  1. Réponses: 6
    Dernier message: 13/01/2010, 16h28
  2. Eviter de lancer 2 fois le même programme
    Par Pasqualini dans le forum C++Builder
    Réponses: 4
    Dernier message: 29/03/2009, 20h02
  3. [C#][ActiveX] Lancer plusieurs fois le contrôle
    Par Nico1987 dans le forum ASP.NET
    Réponses: 4
    Dernier message: 04/02/2009, 16h15
  4. Lancer plusieurs fois la meme thread
    Par andromeda dans le forum Concurrence et multi-thread
    Réponses: 19
    Dernier message: 26/09/2007, 13h32
  5. Réponses: 23
    Dernier message: 08/02/2006, 09h15

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