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 :

Comment charger un gros script en arrière-plan ?


Sujet :

JavaScript

  1. #1
    Membre régulier Avatar de benj63
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Mai 2002
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 207
    Points : 99
    Points
    99
    Par défaut Comment charger un gros script en arrière-plan ?
    Bonjour,

    Je cherche à charger un gros script (100 ko) en arrière-plan, sans que l'affichage d'une page en soit ralenti.

    Comme je l'expliquais dans ce topic , je charge un gros tableau de données dans un script. Or le temps où ce tableau est chargé, la page web ne répond plus, rien n'est affiché, elle reste figée.

    Y'a-t'il un moyen de faire en sorte que le script soit chargé de façon masquée pour l'utilisateur ? Un peu comme un préchargement d'images...

    Merci pour vos idées !

  2. #2
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut Re: Comment charger un gros script en arrière-plan ?
    Citation Envoyé par benj63
    Bonjour,

    Je cherche à charger un gros script (100 ko) en arrière-plan, sans que l'affichage d'une page en soit ralenti.
    Tu as essayé de lier le script dynamiquement à la page après le chargement de celle-ci (en gros, après le onload, tu rajoutes une balise script dans ton fichier, pointant sur ton fichier de script).

    A moins que celui-ce ne soit généré dynamiquement? Est-il possible de le dissocier complétement de la page?

  3. #3
    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 664
    Points
    66 664
    Billets dans le blog
    1
    Par défaut
    peut être ne plaçant le script àprès la balise </html>

  4. #4
    Membre régulier Avatar de benj63
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Mai 2002
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 207
    Points : 99
    Points
    99
    Par défaut
    Merci pour ces solutions, mais j'ai deux petits soucis :

    - le script est généré dynamiquement en PHP... Est-il possible de mettre une balise onload="..." qui pointerait sur un fichier .php qui crée ce gros script ?

    - le script affiche une page html contenue à l'intérieur d'une autre page html grâce à l'élément <object data="mapage.php" ...>. Même en mettant le script derrière </html>, la page contenant la page du script se trouve bloquée...

  5. #5
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut
    Citation Envoyé par benj63
    - le script est généré dynamiquement en PHP... Est-il possible de mettre une balise onload="..." qui pointerait sur un fichier .php qui crée ce gros script ?
    Oui/Non.

    Tu rajoutes dynamiquement un:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <script src='mapage.php?param1=valeur....'></script>
    Dans ta page (en utilisant une méthode DOM propre) après le chargement de celle-ci. C'est un peu près ce que tu fais actuellement, non?

  6. #6
    Membre régulier Avatar de benj63
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Mai 2002
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 207
    Points : 99
    Points
    99
    Par défaut
    Merci, je crois que ça marche parfaitement. J'ai mis à la fin de ma page, sous </html> :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<script src=\"charge_data.php?carte=".$carte."&nom_data=".$nom_data."&".date("Hisdmy")."\"></script>";
    et cela semble charger la page après l'avoir affichée.

    Il me reste simplement à afficher un ptit curseur indiquant qu'il faut patienter, ou quelque chose du genre. Je posterai ma réponse ici dès que j'aurai trouvé une solution (ou je posterai mes questions si j'ai également du mal en mettant en place cela... )

  7. #7
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut
    Citation Envoyé par benj63
    Il me reste simplement à afficher un ptit curseur indiquant qu'il faut patienter, ou quelque chose du genre. Je posterai ma réponse ici dès que j'aurai trouvé une solution (ou je posterai mes questions si j'ai également du mal en mettant en place cela... )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.style.cursor='wait'
    Dans un script au début de ta page ou au début de ton gros script, 'auto' quand c'est fini...... (enfin, il faut vérifier).

  8. #8
    Membre régulier Avatar de benj63
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Mai 2002
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 207
    Points : 99
    Points
    99
    Par défaut
    Merci, malgré tout, j'aurais pu chercher un peu !

    Attention, pour ceux qui consultent ce topic, il ne faut pas oublier "body" dans l'appel du changement du curseur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.body.style.cursor='wait';
    Encore merci pour tout, et bravo pour votre réactivité impressionnante sur ce forum.

  9. #9
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut Une autre solution serait:
    On utilise un :

    [...]

    XmlHttpRequest.open("GET", url + "?" + args, true)
    XmlHttpRequest.onreadystatechange = function() {
    if (XmlHttpRequest.readyState == 4) {
    eval(XmlHttpRequest.responseText)
    }

    [...]

    Ca devrait marche aussi non ?

    L'avantage c'est que le script ne serait pas "hors html", chose qui, dans certains vieux navigateurs, pose problème (il me semble...)

    Fremy

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [CLI] Lancer le script en arrière-plan
    Par ProgVal dans le forum Langage
    Réponses: 3
    Dernier message: 30/10/2009, 18h11
  2. Comment mettre une grande image en arrière plan sur un site ?
    Par Dsphinx dans le forum Mise en page CSS
    Réponses: 10
    Dernier message: 19/07/2009, 12h28
  3. Script en arrière plan
    Par Bignon dans le forum Windows
    Réponses: 0
    Dernier message: 02/10/2007, 14h58
  4. Réponses: 1
    Dernier message: 07/02/2006, 00h11
  5. Réponses: 2
    Dernier message: 02/12/2004, 08h33

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