2017-09-19 8 views
1

Je travaille pour améliorer ma vitesse de pageload pour réduire le rendu de bloc de la page J'insère divers fichiers .js avec le tag async ou defer.Comprendre pourquoi ne peut pas être utilisé "async" dans le <script> tag de Adword Remarketing Tag

Unfortunatly Je lis dans la documentation de « remarketing AdWords Tag » qui suit

S'il vous plaît ne pas modifier la balise de script pour utiliser le paramètre async car il peut conduire à un comportement imprévisible.

Référence: https://developers.google.com/adwords-remarketing-tag/

donc je ne suis pas vraiment clair quel serait le compromis de ne pas insérer

<script async src="https://www.googleadservices.com/pagead/conversion.js"></script> 

vs l'a suggéré

<script src="https://www.googleadservices.com/pagead/conversion.js"></script> 

Si j'ajoute le async tag, je peux clairement voir dans le développeur google que la priorité du réseau change de "hig h "à" bas ". Mais quel serait ce "comportement imprévisible"? que se passerait-il réellement?

Répondre

0

Si les scripts sont destinés à être chargés de manière synchrone, vous devriez vous y tenir. Les conséquences de leur chargement dans le désordre seront probablement des variables/objets indéfinis ou des dépendances non satisfaites. Si vous essayez d'accéder à une variable avant qu'elle ne soit définie par l'autre script, vous rencontrerez une exception de type show-stop. Vous ne pouvez pas rencontrer cela dans votre implémentation, mais rassurez-vous que c'est simplement de la chance et ce type d'erreur peut se produire sur des connexions limitées ou ralenties.

+0

Le script est composé de deux sections, l'une est la définition des paramètres que je quitte direclty synchrone dans le HTML, et le second le "conversion.js" qui appelle ces informations que je veux asynchrone. La seule chose que je pense qui pourrait causer un problème en l'appelant plus tard, c'est si quelqu'un ferme la page plus tôt que le script est chargé (ce qui pour moi est un inconvénient acceptable). La raison pour laquelle je veux absolument le rendre asynchrone, c'est parce que n'importe quel script chargé de synchronisation. il va arrêter le rendu de peinture de html le rendant apparemment plus lent pour l'utilisateur (je suis toujours en cours d'exécution sur HTTP 1.1). – Littlemad

+0

Mais je me demande s'il y a plus d'inconvénients que d'autres raisons. Je ne suis pas un expert en réseautage et je ne comprends pas ce que fait réellement conversion.js (je n'ai pas trouvé de matériel en ligne expliquant ligne par ligne). Et évidemment, je n'accepte pas seulement une description qui n'explique pas pourquoi quelque chose est négatif sans clarifier le pourquoi, parce que je préfère décider des inconvénients que je préfère avoir dans mon code en fonction des situations. – Littlemad

+0

L'étranglement ne serait pas un problème car les paramètres sont toujours chargés en premier. Et je suis d'accord avec le chargement du script après le chargement de la page html. Je pense que l'analyse ne devrait pas interférer avec la vitesse de chargement des éléments essentiels et le comportement d'interaction de la page. Ils peuvent être chargés après ou même les perdre (par exemple une connexion très lente qui crée un problème). – Littlemad