Externaliser GG asynchrone

WRInaute discret
Bonjour à tous,

Petite question rapide est il possible d'externaliser le code asynchrone en créant un fichier google.js contenant:
Code:
  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-XXXXXX-X']);
  _gaq.push(['_trackPageview']);

  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(ga);
  })();

puis d'appeler le fichier
Code:
<script type="text/javascript" src="js/google.js"></script>

Est ce correct?

Merci à tous.
 
WRInaute accro
Techniquement c'est possible, mais tu perds tout l'intérêt du côté asynchrone de la chose, et tu fais un chargement de fichier de plus.

Bref, quel est l'intérêt? Si c'est pour éviter la duplication du code, utilises des includes php (ou équivalents).

Jacques.
 
WRInaute accro
viens de tester et ça revient quasiment au même, voire même légèrement plus rapide, tout dépend des performance du moteur JSCRIPT du navigateur!!!!
 
WRInaute discret
L'objectif est d'externaliser le javascript comme il est toujours recommander pour optimiser le référencement, alléger et épurer le code, ainsi qu'améliorer les performance du site.

Il est sure que si niveau perf, ca ne change quasi rien, et que l'on perds le coté asynchrone, ca change un peut tout.
 
WRInaute accro
Pour les performances, la tendance actuelle (justifiée) est plutôt à la limitation du nombre de fichiers à charger: un seul fichier JS plutôt que plusieurs, un seul CSS plutôt que plusieurs, utilisation de "sprites" pour les images (boutons, éléments de style...), etc.

Là, tu rajoutes un JS de plus à charger, ça ajoute forcément en latence.

Et surtout, le tag script va forcément être exécuté de façon synchrone (comme l'ancien tag GA), donc bloquer l'affichage du reste de la page jusqu'à ce qu'il soit chargé. Comme il est sur le même serveur ça va relativement vite en général, mais ça prend forcément plus de temps.

Bref, à mon humble avis, ça n'a aucun intérêt.

Jacques.
 
WRInaute accro
perso j'ai fusionner mon script ça donne http://195.20.239.29/t.js et coté vitesse de chargement c'est du pareil au même.

question que permet le chargement asynchrone, de charger indépendamment le script java, hors charger un fichier Jscript externe qui regroupe deux fichier Jscript c'est aussi un chargement optimiser.

perso se que je cherche à faire c'est de fusionner:

http://195.20.239.29/ga.js et http://195.20.239.29/t.js

de cet manière je n'aurai plus qu'un seul fichier Jscript et du coup se sera optimiser!!!!
 
WRInaute accro
@gotcha5832: dans ce cas effectivement, ça ne change rien, qu'il soit dans le html directement ou dans un JS que tu charges de toutes façons c'est kif-kif.

Jacques.
 
WRInaute impliqué
L'externalisation en include à outrance n'est pas la solution mais vous venez d'en discuter largement ;-)
De mon côté, je n'observe pas de gain réel de performance
 
WRInaute accro
ben moi aussi j'avais noté des gains, spour ça que je l'ai laisser, en fait c'est un chouya mieux qu'en asynchrone on dirait, pis je ne fais que suivre bêtement les conseil de pagespeed.


maintenant se que j'en ai compris des problèmes de performances que j'avais s'était d'un part l'activation du PHP à fait perdre quelque millième de seconde, et surtout un script PHP à la con pour voire le passage de robots, mais depuis que les robots passe moins et plus raisonnable, ça va mieux donc j'ai viré le script PHP et du coup la vitesse de chargement est meilleurs et plus notable sur google chrome, même chez les clients qui parfois n'ont qu'un mégabit voire même moins parfois.
 
Discussions similaires
Haut