Jump to content

Double exécution de scripts JS


Recommended Posts

Dans le cadre d'installation de liens de tracking sur un Presta 1.6, je suis amené à installer des inclusions de scripts JS, tels que celui ci :

<script type="text/javascript" src="http://action.metaffiliation.com/trk.php?mclic={$idNACustomerJS}&argmon={$value}&argann={$orderid}" ></script>

Quand j'affiche ma page, pas de soucis, tout se passe bien et les infos sont renseignées comme il faut. Idem en affichant la source et en regardant la fenêtre des scripts de Firebug.
 
Cependant, la plateforme de tracking me signale qu'ils reçoivent deux remontées d'infos, et effectivement, quand j'analyse ma page avec GTmetrix, il me signale un doublon :

The following resources have identical contents, but are served from different URLs. Serve these resources from a consistent URL to save 1 request(s) and 11.6KiB.

 

D'où sort ce deuxième appel et pourquoi y a-t-il un paramètres supplémentaire ? A première vue, j'ai pensé à un timestamp, mais c'est trop gros.

Est-ce que ça vient de Prestashop, sachant que j'ai au total 4 inclusions dans le même cas ?

 

Est-ce que quelqu'un a déjà rencontré ce cas de figure ?

 

Merci d'avance

Edited by Mando (see edit history)
Link to comment
Share on other sites

Je ne sais pas, car je viens de reprendre le projet, je ne le connais pas encore comme il faut. Comment puis-je le voir ?

Par contre, je n'ai ce soucis que sur 4 des nombreux scripts JS qui sont invoqués sur la page...

Link to comment
Share on other sites

N'ayant pas accès au fichiers je ne peux vous conseiller que de regarder dans le codes des tpl de votre thème pour comprendre ce qui a été fait.

 

Perso, pour l'intégration de ces tracking je développe toujours un module ce qui facilite son maintient et permet de gérer l’élément à un seul endroit et évite tous ces soucis.

Link to comment
Share on other sites

C'est ce qui a été fait ici, les scripts sont appelés dans des fichiers .tpl dédiés, et le problème est bien là, à l'oeil, je ne trouve RIEN qui ne justifie ceci, même à l'affichage de la page sur navigateur (donc après appel des JS), ils n'apparaissent pas en double.

Link to comment
Share on other sites

Il s'agit bien d'un timestamp (en ms) probablement ajouté par jQuery (c'est ce qu'il fait par défaut) lors de l'inclusion dynamique dans le DOM d'un élément <script> (pour être exact de tout élément avec propriété "src").

Vous pouvez éviter cet ajout de timestamp en exécutant le code JS suivant le plus tôt possible:

$.ajaxSettings.cache = true;

Mais il faut vérifier qu'il n'y a pas d'effet de bord à l'utilisation du cache.

 

Autre possibilité de correction: vous dites que le problème apparaît avec un seul script et pas avec d'autres (du même acabit?). Est-ce que ce ne serait pas le seul à être injecté une seconde fois (par exemple lors de window load ou document ready), ou même plusieurs autres fois par exemple par un bloc html issu d'une requête ajax?

 

Avec une URL, notre analyse pourrait être poussée un peu plus...

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...