Google Analytics async code utilise une conception très distincte de modèle pour l'exécution de code javascript.
Le code dépend d'une bibliothèque et il ne sait pas si la bibliothèque est chargé ou non. Si la bibliothèque ne se charge pas et pourtant il vient de files d'attente de toutes les commandes dans un Tableau d'objet. Lorsque la bibliothèque charge, il crée simplement le _gaq objet et exécute toutes les commandes dans la séquence, il a été inclus. Il remplace ensuite la fonction push aussi, les futures commandes sont exécutées immédiatement.
L'idée est de rendre l'exécution des commandes très rapide quand ils sont mis en file d'attente. Le code n'est vraiment évalué plus tard, lorsque la bibliothèque est chargé.
Ils ont également la charge de la bibliothèque avec les paramètres async=true
. Cela provoque presque pas d'impact réel sur la page de chargement.
Les commandes sont semblables à la synchronisation des versions, mais la première chaîne est le nom d'une fonction et les paramètres suivants sont les paramètres de la fonction. Vous pouvez également pousser des fonctions dans ce tableau et les fonctions seront exécutées dans l'ordre, aussi bien avec une valeur null contexte. Donc, si vous avez besoin de faire quelque chose synchrone avec la bibliothèque, vous pouvez pousser une fonction pour faire cela à l'intérieur de _gaq.
Je pense que c'est un très habile solution mais je ne l'ai jamais vu avant. Personne ne sait le nom de ce modèle de conception ou lorsqu'il est utilisé en outre le code de suivi Google Analytics?