philippe69 Posté 26 Octobre 2010 Posté 26 Octobre 2010 Bonjour à tous, Mon code PHP génère dynamiquement du code javascript. actuellement pour inclure ce code je fais un classique : <script language="text/javaScript" type="text/javascript">Mon code js</script>' Le problème c'est que ça fait des pages trop chargées en js et peu optimisées pour le référencement. Est-il possible, sans passer par la création d'un fichier dans lequel je mets mon js, d'envoyer le code comme si c'était un fichier séparé. exemple: en php le code js est créé dans $fichierjs puis l'appel se ferai avec un truc du genre <script language="text/javaScript" type="text/javascript" src=<"'.$fichierJS.'"></script>' J'ai volontairement mis "<" derrière "src=" pour faire comme une redirection de flux Merci de votre aide Cordialement
Ernestine Posté 26 Octobre 2010 Posté 26 Octobre 2010 Salut, Je n'ai strictement rien compris à cette question : Est-il possible, sans passer par la création d'un fichier dans lequel je mets mon js, d'envoyer le code comme si c'était un fichier séparé. Mais je suppose que tu veux éviter de lier un fichier JS ? Ta solution, dans la pratique, est possible, mais plutôt comme ça : <?php $fichier_js = file_get_contents('url_du_fichier_js'); ?> Et ensuite dans la page: <script type="text/javascript"><?php echo $fichier_js; ?></script> Mais je ne vois pas l'intérêt profond de cette méthode. Au final, la quantité de lignes de code sera la même. La différence c'est que ça tiendra en un seul fichier au lieu d'avoir un fichier JS séparé. Certes, ça représente un petit gain pour le chargement, mais tellement infime (comparé au volume de données), que c'est vraiment se compliquer la vie pour rien.
philippe69 Posté 27 Octobre 2010 Auteur Posté 27 Octobre 2010 Bonjour, et merci de ta réponse. Mais ce n'est pas ça. En fait, je voudrais éviter de faire apparaître du code js dans mais page mais plutôt utiliser des fichiers externes js. Ceci afin d'éviter le code directement à l'intérieur des pages html. Quand tu fais ça : <script type="text/javascript">code js</script> les moteurs de recherche lisent le code et doivent d'abord faire le ménage pour passer ensuite au référencement. alors que quand tu fais: <script language="text/javascript" type="text/javascript" src="monjs.js"></script>' les moteurs ne cherchent pas à lire l'inclusion de fichier js. C'est pour cela que je souhaite un mix des 2 : - je souhaite conserver la notation src="xxxx" - mais mon xxx n'est pas un fichier mais mon code js généré dynamiquement ...hummmm, pas facile à expliquer
captain_torche Posté 27 Octobre 2010 Posté 27 Octobre 2010 Dans ce cas, tu seras obligé de passer par une étape de génération de fichier. Par contre, en ce qui concerne le référencement, le souci ne vient pas du fait qu'il y ait du javascript dans la page (Il est très facile pour un moteur de supprimer le code inutile), mais plutôt du poids de la page. Pour contourner ton problème, pourquoi ne pas faire un fichier statique, et générer des variables de personnalisation dans ta page ?
Ernestine Posté 27 Octobre 2010 Posté 27 Octobre 2010 Que le code JS soit inclus directement dans la page, ou bien dans un fichier séparé, ça ne fait aucune différence pour les moteurs de recherche : le javascript est simplement ignoré. Il n'y a aucun bénéfice, du point de vue référencement, à vouloir séparer le fichier. Mais c'est quand même bien de le faire pour la propreté du code. Pour résoudre ton problème tu peux cacher des champs dans ta page comme ça : <input type="hidden" id="truc" value="<?php echo 'machin'; ?>" /> (le value est donc généré dynamiquement en php) Ensuite dans le fichier JS, tu récupères la valeur du champ truc en javascript : var truc = document.getElementById('truc').value; et le tour est joué.
paolodelmare Posté 27 Octobre 2010 Posté 27 Octobre 2010 (modifié) En dehors du référencement, c'est une bonne pratique de mettre son js en externe (perf et mise en cache). Comme l'a écrit captain, tu peux génerer via php un fichier css (tout comme un sitemap.xml par exemple). Il faudra placer header("content-type: application/x-javascript");"); en tête dudit fichier. Modifié 27 Octobre 2010 par paolodelmare
Ernestine Posté 28 Octobre 2010 Posté 28 Octobre 2010 Il est également possible de créer un fichier javascript avec l'extension .php, ça marche pareil, et de l'inclure : <script type="text/javascript" src="monscript.php"></script> Ça permet de mettre des tags php dans le javascript. Et si vraiment on veut conserver l'extension .js pour faire plus propre, on met dans le htaccess : RewriteRule ^.*monscript\.js$ monscript.php [L] Et on inclue simplement : <script type="text/javascript" src="monscript.js"></script> PS : en fait je viens de dire la même chose que Captain et Paolo.
captain_torche Posté 28 Octobre 2010 Posté 28 Octobre 2010 Pas vraiment : je lui conseillais de faire un fichier statique en JS, et de mettre dans la page des variables de personnalisation en javascript, mais générées par PHP. C'est un peu gore, mais ça peut marcher.
philippe69 Posté 28 Octobre 2010 Auteur Posté 28 Octobre 2010 Merci à tous. C'est bien ce que je craignais. Il n'y a pas vraiment de solution hors celle que vous citez et que j'avais envisagé. Cordialement Philippe
Leonick Posté 1 Novembre 2010 Posté 1 Novembre 2010 Et si vraiment on veut conserver l'extension .js pour faire plus propre, on met dans le htaccess : RewriteRule ^.*monscript\.js$ monscript.php [L] ou une méthode plus "subtile" : appeler son script monscript.js.php et avec le multiview activé sur le serveur, il va te servir ce fichier quand tu appelleras monscript.js
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant