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 :

Appel fichier js en fin de page


Sujet :

JavaScript

  1. #1
    Invité
    Invité(e)
    Par défaut Appel fichier js en fin de page
    Bonjour,
    Pour optimiser le chargement de mes pages je souhaite mettre tout mes fichiers Js en fin de page.
    Donc j'ai déplacer mes appels avant le </body>
    Par contre ma configuration d'un plugins jquery ne fonctionne.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <script type="text/javascript">
    $(document).ready(function($) 
    {
    $(".slider").slideshow(
    {
    width      : 960,
    height     : 360,
    transition : "squareRandom"
    });
    });
    </script>
    Comment faire marcher ce script ?
    faut il le mettre en haut ou puis je le mettre en bas de page ?

    Merci de votre aide

  2. #2
    Membre émérite
    Avatar de Kaamo
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 165
    Points : 2 778
    Points
    2 778
    Par défaut
    Utilise window.onload = function() { ... } plutôt que $(document).ready(...).
    En effet, ce dernier (propre à jQuery d'ailleurs) va se lancer quand le document sera chargé sans se soucier si les autres ressources (images, script, etc) le sont. Tandis que window.onload est déclenché à la fin de tout ce qui est à charger dans la page.
    Pour optimiser le chargement de tes scripts, je te conseille de te pencher du coté de async ou encore defer. Je ne pense pas que les mettre à la fin soit une si bonne idée que ça.

    Par exemple, ceci bloque le rendu de la page le temps de charger le script
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    <script src="script.js"></script>
    tandis que ce code,
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <script type="text/javascript">
    (function() {
    var po = document.createElement('script');
    po.async = true; po.src = 'script.js';
    var s = document.getElementsByTagName('script')[0];
    s.parentNode.insertBefore(po, s);
    })();
    </script>
    ce qui équivaut à <script src="script.js" async></script>. En effet, le script sera chargé puis exécuté en parallèle du chargement de la page. C'est plus propre que le mettre à la fin du document, selon moi.

    Enfin, le defer permettrait de charger le script en parallèle mais l'exécuter quand le document est prêt.

  3. #3
    Invité
    Invité(e)
    Par défaut
    j'ai testé le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    window.onload = function() { ... }
    en mettant en bas de page mon script et mes fichiers js et j’obtiens cette erreur :
    ReferenceError: jQuery is not defined

  4. #4
    Membre émérite
    Avatar de Kaamo
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 165
    Points : 2 778
    Points
    2 778
    Par défaut
    oui, il faut bien sûr l'adapter
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    window.onload = function($) { ... }

  5. #5
    Invité
    Invité(e)
    Par défaut
    Oui bien entendu j'ai aussi fait le test en rajoutant le $, j'ai aussi testé plusieurs combinaisons, mais mon slider ne fonctionne toujours pas, je seche.

  6. #6
    Membre actif

    Profil pro
    Inscrit en
    Juillet 2012
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 183
    Points : 274
    Points
    274
    Par défaut
    Citation Envoyé par christobale Voir le message
    Oui bien entendu j'ai aussi fait le test en rajoutant le $, j'ai aussi testé plusieurs combinaisons, mais mon slider ne fonctionne toujours pas, je seche.
    Si tu mets jquery en fin de page, le problème c'est que ton $ ne fonctionnera pas

    Pour ma part, j'aurai fait un truc dans le genre :

    On sait qu'on a parfois besoin d'un script en début de page, comme par exemple HTML5shiv ou autre.

    donc dans mes pages j'ai un script de départ
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script src="head.js"></script>
    Dans ce head.js pourquoi ne pas avoir un tableau dans lequel tu pusheras tes actions du domready dedans :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var domReadyArray=[];
    Et dans ta page tu fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    domReadyArray.push(function() {
       //le code de la fonction
    });
    Et ensuite à la fin de la page après l'appel de jquery :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    (function() {
    var a = domReadyArray.reverse();
    while(a.length) a.pop()(); //oui on appelle pop qui retourne notre fonction et on éxécute immédiatement notre fonction.
    })();

  7. #7
    Invité
    Invité(e)
    Par défaut
    Outch, c'est bien compliqué tout ça.
    Mois qui voulais Obtenir un A avec Yslow, je vais me contenter d'utiliser minify pour concaténer mes js et css et les laisser en haut.

Discussions similaires

  1. Appel fichier PHP depuis page HTML
    Par luc1310 dans le forum Langage
    Réponses: 5
    Dernier message: 03/10/2008, 15h17
  2. changement de page suite appel fichier ASP
    Par mickael28 dans le forum ASP
    Réponses: 4
    Dernier message: 01/09/2008, 17h29
  3. Appel fichier xml
    Par Laure888 dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 24/10/2005, 16h25
  4. Redirection en fin de page
    Par FamiDoo dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 27/01/2005, 16h14
  5. [Debutant(e)]Appel d'une servlet dans une page jsp
    Par kouadjalain dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 20/07/2004, 15h02

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