2009-12-07 5 views
6

Je contrôle un iframe en cours de rendu sur un autre domaine. Existe-t-il un moyen clair de dire si cette iframe est rendue au-dessus ou en dessous du pli sur la page parente? Évidemment, je ne peux pas accéder au DOM parent en raison de la restriction same origin policy. Par exemple, j'ai essayé de mesurer la vitesse de rendu sur une étiquette canvas ou VML, en espérant que ce soit plus rapide lorsque l'étiquette n'est pas à l'écran. Cela n'a pas fonctionné - il n'y avait pas de différence de vitesse discernable. Idem pour la manipulation du DOM - il ne semble pas y avoir de moyen de différencier les opérations de refusion/repaintage en dessous ou au dessus du pli.Quelles sont les optimisations effectuées par un navigateur lorsqu'un élément DOM est rendu hors écran?

Qu'en est-il du flash? Je n'ai pas beaucoup d'expérience, mais pourrait-on vérifier à quelle vitesse un navigateur rend les opérations flash? Ou est-ce que flash a des événements 'invisibles' en dehors de la norme DOM?

+0

En aurez-vous besoin pour une utilisation en production? Pouvez-vous élaborer un peu sur le contexte? –

+0

Bien sûr. Cela fait partie d'un système de diffusion d'annonces, et j'aimerais tester le pourcentage de fois qu'une annonce est visible par les utilisateurs, afin d'avoir une idée plus précise de leur valeur. Cela se fera très bientôt en production, et pour un nombre limité de publicités, la performance n'est pas très importante. Bien sûr, il ne devrait pas casser la page (ou iframe) ou nuire à l'expérience de l'utilisateur de quelque façon que ce soit. –

+0

Comment l'annonce est-elle diffusée exactement? Un extrait Javascript est-il impliqué? –

Répondre

0

Cela varie vraiment par navigateur, car les différents navigateurs interagissent différemment avec le plugin Flash. L'explication la plus précise que j'ai pu trouver est sur un vieux connectedpixel post. Au moment de l'écriture, Firefox n'a pas initié un objet flash tant qu'il n'a pas fait défiler la page. IE, d'autre part, redimensionné l'élément Stage quand il défilait dans la vue. Aucune version de navigateur, Flash ou système d'exploitation n'est donnée, donc cela peut avoir changé depuis ce test.

En bref, je dois faire un objet flash et jouer avec, en regardant divers événements.

2

Je ne pense pas.

La même restriction de stratégie d'origine empêche cela, bien que vous puissiez utiliser les paramètres d'URL, qui peuvent être définis par le javascript incorporant l'annonce, au décalage sur la page.

1

Selon l'auteur de SoundManager2 Scott Schiller, il existe une légère différence dans la latence du pont de communication JS-> Flash selon que le film flash est à l'écran ou non. C'est-à-dire, c'est plus lent quand ce n'est pas à l'écran.

+2

Pourriez-vous un commentaire? –

Questions connexes