L'utilisation d'IFRames peut facilement appeler des pages d'autres sites Web, mais ils doivent être utilisés avec prudence. Il faut des dizaines, voire des centaines de fois plus de performances que de créer d'autres éléments DOM, y compris le style et le script. L'ajout de 100 éléments différents La comparaison du temps montre à quel point l'IFRAME consommait les performances:
Les pages qui utilisent les iframes n'ont généralement pas autant de iframes, alors ne vous inquiétez pas trop de la création de DOMS. Ce qui est plus digne de préoccupation, ce sont les événements de charge et les pools de connexion.
Iframe bloque onloadIl est très important que l'événement Onload de la fenêtre s'exécute dès que possible. Cela permettra à l'indicateur de progression de chargement du navigateur de terminer, et l'utilisateur déterminera si la page a été chargée en fonction de cela. Le délai d'événement Onload fera sentir à l'utilisateur que la page est plus lente.
L'événement Onload de la fenêtre ne se déclenchera pas tant que tous les iframes qu'il contient et les ressources dans tous les iframes ne seront pas entièrement chargés. Dans Safari et Chrome, l'attribution de valeurs dynamiquement aux iframes avec Javascriptpt peut éviter ce comportement de blocage.
Un pool de connexionPour chaque serveur Web, le navigateur n'ouvre que quelques connexions. Les anciens navigateurs, dont IE 6/7 et Firefox 2, n'ont que 2 connexions par hôte. Dans le nouveau navigateur, le nombre de connexions augmente. Safari 3+ et Opera 9+ ont augmenté à 4, Chrome 1+, IE 8 et Firefox 3 ont augmenté à 6.
On peut s'attendre à un pool de connexion séparé pour chaque iframe, mais ce n'est pas le cas. Dans la plupart des navigateurs, les connexions sont partagées par la page principale et son iframe, ce qui signifie qu'il est possible que les ressources de l'IFRAME prennent les connexions disponibles et bloquent le chargement des ressources de la page principale. C'est génial si le contenu de l'IFRAME est tout aussi important ou plus important que la page principale. Cependant, en général, le contenu dans un iframe n'est pas très important pour la page, et il n'est pas conseillé que l'IFRAME occupe le nombre de connexions. Une solution consiste à affecter dynamiquement le SRC de l'IFRAME une fois le téléchargement de la ressource avec une priorité plus élevée.
Cinq des 10 meilleurs sites Web aux États-Unis utilisent des iframes. La plupart d'entre eux sont utilisés pour charger des annonces. Ce n'est pas très approprié, mais c'est compréhensible, c'est un moyen facile d'insérer des annonces dans le contenu. Dans de nombreux cas, l'utilisation d'un iframe est raisonnable. Mais soyez conscient de l'impact des performances que cela a sur votre page. Veuillez l'utiliser avec prudence sauf si nécessaire.