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

jQuery Discussion :

Chargement dynamique fichiers JS et CSS - Solution partielle actuellement


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé

    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    1 026
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 1 026
    Billets dans le blog
    45
    Par défaut Chargement dynamique fichiers JS et CSS - Solution partielle actuellement
    Bonjour à tous,


    J'ai besoin de charger dynamiquement des fichiers CSS et JS. A vrai dire, j'ai déjà une solution mais partielle grâce à l'excellent programme en JS rloader. c'est par ici .

    Mais j'aimerais aller plus loin et envoyer dans rloader une liste des fichiers à charger localisés dans un répertoire et ses sous répertoires associés.
    Il me faudrait une fonction qui listerait tous les fichiers d'un répertoire envoyé en paramètre et récursif
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function walkSync (dir, filelist) {
      var fs = fs || require('fs'),
          files = fs.readdirSync(dir);
      filelist = filelist || [];
      files.forEach(function(file) {
        if (fs.statSync(dir + '/' + file).isDirectory()) {
          filelist = walkSync(dir + '/' + file, filelist);
        }
        else {
          filelist.push(file);
        }
      });
      return filelist;
    };
    Attention le code ci-dessus ne fonctionne pas !


    avec son appel au chargement de la page HTML
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    var filesList = function walkSync ("js/");
    var optRloader = function setFormat(filesList)
    {/*... traitement pour mettre au format comme ci-dessous
           [	{src:'fancybox/helpers/jquery.fancybox-thumbs.js'},
    		{src:'fancybox/helpers/jquery.fancybox-thumbs.css'},
    		{src:'fancybox/helpers/jquery.fancybox-buttons.js'},
    		{src:'fancybox/helpers/jquery.fancybox-buttons.css'}
    	]
    */
     
    };
     
    $.rloader(optRloader);
    Mais j'arrive pas à trouver le moindre post qui me mette sur la voie...enfin c'est plutôt qu'après leur lecture, j'ai vaguement compris que cela n'etait possible qu'en Php. Et c'est là que ça devient flou car rloader est en JS et charge bien des fichiers JS & CSS du server

    Merci par avance de toute aide apportée!

    Be seeing you Nom : prisoner_number_6_button_be_seeing_you_Xsmall.jpg
Affichages : 260
Taille : 1,9 Ko

  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 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 659
    Billets dans le blog
    1
    Par défaut
    il y a deux façon d'aborder la chargement de fichiers de façon dynamique.

    La première coté client

    Jquery peut tout a fait faire un load voire getScript. Mais il n'obtient qu'un seul retour
    On peut alors imaginer coté client boucler sur un array de paths pour charger plusieurs fichiers avec getScript ou load ou encore intégrer des balises de fichiers externes


    L'autre implique que le serveur fasse lui un regroupement pour retourner une concaténation du code soit directement des scripts , soit des balises d'inclusion de fichiers externes. Il suffit de pointer sur un seul fichier de traitement php en lui passant en paramètre les paths afin qui'l fasse un include ou génère des balises html de fichiers externes ...
    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 éprouvé

    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    1 026
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 1 026
    Billets dans le blog
    45
    Par défaut
    Bonjour SpaceFrog,

    Merci pour tes retours et déjà je comprends le principe avec $.getScript (fichierAvecChemin) qui est basé sur un appel AJAX, une alternative à $.rloader(optRloader) que je peux gérer à ma main

    Par contre c'est là où ca coince, c'est que $.getScript (optFicChemin) attend optFicChemin. Or c'est justement optFicChemin que je veux rendre générique et automatique passant en paramètre un répertoire avec son chemin et ensuite charger automatiquement tous les fichiers de ce répertoire et des sous répertoires .

    Donc si je te suis, côté client avec JS, il faut appeler via AJAX un script PHP qui renverrais un tableau de fichiers avec leur chemin et ensuite boucler sur le tableau pour appeler $.getScript (fichierAvecChemin) autant de fois qu'il existe d'items dans le tableau.


    Par contre la solution server pur me parait beaucoup plus lourde alors je préfère me concentrer sur la solution client JS.

    Be seeing you Nom : prisoner_number_6_button_be_seeing_you_Xsmall.jpg
Affichages : 252
Taille : 1,9 Ko

  4. #4
    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 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 659
    Billets dans le blog
    1
    Par défaut
    Il te suffirait de passer en paramètre un identifiant de répertoire ...

    et du coup ton fichier de traitement php ferais un include de tous les fichiers contenus dans ce répertoire.
    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 !

  5. #5
    Membre éprouvé

    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    1 026
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 1 026
    Billets dans le blog
    45
    Par défaut
    SpaceFrog,

    Tu m'ouvres des horizons et en même temps j'ai toujours l'impression de me balader au bord de la tamise.

    En appelant dans un fichier PHPH => include 'js/file.js', il pourra être appelé côté client?

    Je me pose des question sur l'appel AJAX, c'est asynchrone et ça pose pas des problèmes. Par exemple des appels à des fonctions JS chargées côté serveur lors du chargement de la page ?

  6. #6
    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 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 659
    Billets dans le blog
    1
    Par défaut
    un seul appel de script coté client ...

    c'est php qui concatène le code que tu veux retourner ...
    par exemple avec un include dans un boucle sur les fichiers du répertoire passés en paramètre
    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 !

  7. #7
    Membre éprouvé

    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    1 026
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 1 026
    Billets dans le blog
    45
    Par défaut
    la solution est ici

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

Discussions similaires

  1. CSS Dynamique : problème de chargement des fichiers
    Par Emyleen dans le forum Mise en page CSS
    Réponses: 8
    Dernier message: 07/10/2011, 14h34
  2. Chargement dynamique de la CSS dans la MasterPage
    Par titan_33 dans le forum ASP.NET
    Réponses: 3
    Dernier message: 05/09/2008, 10h19
  3. Chargement dynamique d'un fichier VBA
    Par ci0420 dans le forum Word
    Réponses: 2
    Dernier message: 16/10/2007, 08h00
  4. [AJAX] Chargement dynamique de CSS
    Par drannh dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 26/12/2006, 12h09
  5. Réponses: 8
    Dernier message: 14/04/2005, 19h06

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