Aller au contenu

Nettoyer les pages HTML du javascript


philippe69

Sujets conseillés

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

Lien vers le commentaire
Partager sur d’autres sites

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.

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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 ?

Lien vers le commentaire
Partager sur d’autres sites

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é.

Lien vers le commentaire
Partager sur d’autres sites

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é par paolodelmare
Lien vers le commentaire
Partager sur d’autres sites

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.

Lien vers le commentaire
Partager sur d’autres sites

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 :)
Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...