2010-04-12 6 views
9

Selon Yahoo "Best Practices for Speeding Up your Site", les pros pour les iframes utilisant:iframe pour les annonces qui se chargent du bon ou du mauvais?

  • aide à lente contenu tiers comme des badges et des annonces
  • scripts de téléchargement en parallèle

mais les inconvénients sont:

  • même si elle est vide coûteux
  • Page blocs onload

Je veux utiliser un iframe pour charger des annonces en utilisant la technique mentionnée sur ce site: http://meanderingpassage.com/2007/08/15/keeping-javascript-widgets-from-controlling-your-blog/

Le fait d'utiliser cette technique signifie que dès que le contenu html demandés par l'iframe sont renvoyés au client , il chargera le script publicitaire, bloquant potentiellement le reste du rendu et du téléchargement de la page? Ou la requête iframe sera-t-elle traitée simultanément pendant que le reste du document est téléchargé et rendu? Cependant, je ne cherche pas à discuter de la philosophie selon laquelle les annonces sont bonnes ou mauvaises.

+0

Comment bloque-t-il le chargement de page? Et c'est seulement coûteux en raison de la mise en œuvre. Blâmer les gens du navigateur, pas la conception originale de l'iframe. – Pyrolistical

+2

@Pyro Je ne pense pas qu'il se soucie de blâmer quelqu'un, juste de faire un bon site. –

+0

Je publie des annonces Google depuis un certain temps sur mon site, qui repose sur des iframes générées par JS, et je n'ai remarqué aucun problème. Généralement (mais pas toujours) mon contenu est chargé avant les ajouts (et quand les publicités gagnent la course c'est parce qu'elles sont en texte seul et que ma page est longue ^^ '). –

Répondre

8

Le rendu de l'iframe intérieur est traité simultanément avec la page extérieure. Tout javascript à l'intérieur de l'iframe empêchera seulement le chargement du contenu à l'intérieur de l'iframe. Edit: aussi, je viens de remarquer que j'ai répondu à votre précédente question sur ce sujet, et comme expliqué ici, il est possible de déclencher le chargement de iframe en javascript quand vous le souhaitez (par exemple après le chargement de la page).

+0

@tloflin Merci. C'est ce que j'essayais de comprendre. –

9

Je ne sais pas exactement pourquoi la liste Yahoo dit "Blocks page onload". Les IFrames se chargent indépendamment de la page parente, en particulier si le contenu iframe est dans un domaine différent de celui de la page principale. La "Blocks on onload" semble contradictoire aux pros, tous deux dus à la simultanéité de la charge iframe. Maintenant, si vous avez un iframe qui charge quelque chose du même nom de domaine que la page principale, cela peut tomber dans la limite de connexion du navigateur par domaine, et affecter ainsi la rapidité avec laquelle la page principale peut télécharger son contenu. Mais si l'URL iframe est un domaine différent, il devrait obtenir sa propre limite de connexion par domaine.

Le plus grand pro pour les iframes est l'isolation de sécurité. Lorsque vous chargez un script tiers dans un iframe, vous n'avez pas à vous préoccuper du script tiers qui prend le dessus sur votre page et qui graffit graffitti partout, ou qui dérobe les données utilisateur de vos variables de script.

La plus grande con pour les iframes est aussi l'isolation de sécurité. ;> Le mur de brique qui vous protège des tiers rend également très difficile de communiquer/partager des informations entre les parties sur la même page Web.

+1

+1 pour la protection du contexte, mais notez que pour que cela soit sécurisé, vous devez placer iframe sur un autre nom d'hôte. Dans le cas contraire, vous invitez toujours le réseau publicitaire et toute personne en qui ils ont confiance à inter-site-script dans votre contexte de sécurité; S'ils le voulaient, ils pourraient contrôler l'interaction des utilisateurs avec n'importe quelle page pour faire tout ce que l'utilisateur est autorisé à faire. – bobince

+0

"Blocks page onload" signifie que les iframes bloquent l'événement 'window.onload' de tirer plus tôt mais bien sûr ils ne bloquent pas le processus de chargement de la page –