Charger son conteneur de façon synchrone ou asynchrone

Un dilemme cornélien

30 mai 2018
Tandis que certains outils de gestion des balises Web, tel que Google Tag Manager, sont depuis leur conception incompatibles avec une méthode de chargement synchrone, d'autres systèmes tel que Tag Commander sont eligibles tout aussi bien à l'emploi de l'une et de l'autre. La prédominance, à date, de la méthode de chargement non bloquante signifie-t-elle qu'elle est systématiquement supérieure à son alternative bloquante ? La méthode synchrone est-elle vouée à disparaître car devenue obsolète ?

Chargement asynchrone : une approche exempte de tout reproche ?

Au fil des années, les études démontrant le lien de causalité existant entre l'optimisation des temps de chargement et l'amélioration des taux de conversion se sont succédées avec pour conséquence, une attention accrue portée à la surveillance des temps de chargement. Dans ce contexte, comment ne pas porter au pinacle un système de déploiement qui ne retarde pas le chargement des autres ressources ? En effet, avec un support du HTTP/2 qui avoisine les 80% de part de marché, à en juger par les chiffres disponibles sur Can I use, son impact sur le nombre de connexions pouvant être ouvertes concomitamment par un navigateur n'est plus aussi conséquent qu'il a pu l'être du temps du HTTP/1. Les qualités intrinsèques du système de gestion des balises demeurant inchangées par ce système d'appel, comment le système synchrone pourrait-il soutenir la comparaison avec son rival ?

Chargement synchrone : une solution à utiliser dans des contextes spécifiques

Puisque le chargement synchrone d'un conteneur retarde l'appel des autres éléments inclus dans le code source des pages ainsi que l'envoi de l'événement DOM ready, il lui faut faire montre de qualités à même de compenser ces deux handicaps. Ce caractère bloquant le rend tout indiqué afin de corriger/définir/modifier des valeurs ou éléments auxquels font appel d'autres éléments situés en aval et qui ne seraient pas déployés via un système de gestion des balises.

En outre, du fait de son caractère synchrone, un support total de la méthode document.write est possible. Bien qu'un abandon à terme par les navigateurs de cette commande décriée soit à prévoir, elle est la seule à permettre, à date, le déploiement par un système de gestion des balises d'un outil de tests A/B dans des conditions similaires à une inclusion directe en dur dans les pages.

Enfin, couplé à la possibilité d'inclure directement au sein d'un conteneur le contenu de codes JavaScript externes, il permet de garantir une exécution la plus en amont possible de certains éléments jugés particulièrement stratégiques, tout en continuant à les gérer au moyen d'un conteneur. Mis entre les mains des équipes techniques, un tel outil peut même permettre le déploiement dans l'urgence et sur une courte durée de patchs et codes indispensables au bon fonctionnement des applications.

En conclusion

Bien que la méthode de déploiement asynchrone des conteneurs fasse désormais figure de norme, elle ne répond par parfaitement à certains enjeux liés au recours à un système de gestion des balises, tel que le déploiement de codes de façon prématurée dans la séquence de chargement initiale de la page ou encore la capacité à interagir parfaitement avec d'autres ressources incluses directement au sein du code source des pages. Dans certaines configurations, la valeur ajoutée de la méthode de déploiement synchrone dans ces deux domaines peut s'avérer suffisante pour éclipser les désagréments liés à l'allongement du temps de chargement total de la page qu'elle génère.