【问题标题】:What optimizations does a browser perform when a DOM element is being rendered off screen?当 DOM 元素在屏幕外渲染时,浏览器会执行哪些优化?
【发布时间】:2012-10-06 00:09:54
【问题描述】:

我控制在另一个域上呈现的 iframe。是否有明确的方法来判断此 iframe 是在父页面的首屏上方还是下方呈现?显然,由于same origin policy 的限制,我无法访问父 DOM。

例如,我尝试测量canvasVML 标签的渲染速度,希望当标签不在屏幕上时它会更快。这不起作用 - 没有明显的速度差异。 DOM 操作也是如此 - 似乎没有办法区分折叠下方或上方的回流/重绘操作。

闪存呢?我没有太多经验,但可以检查一下浏览器呈现 Flash 操作的速度有多快吗?或者 flash 是否有任何 DOM 标准之外的“不可见”事件?

【问题讨论】:

  • 您在生产中需要这个吗?你能详细说明一下背景吗?
  • 当然。这是广告服务系统的一部分,我想运行一个测试来查看广告对用户可见的时间百分比,以便更准确地了解它们的价值。这将很快在生产中运行,并且对于投放的广告数量有限,因此性能并不是很重要。当然,它不应该以任何方式破坏页面(或 iframe)或损害用户体验。
  • 如何准确投放广告,是否涉及 Javascript sn-p?
  • 澄清一下,您的意思是您控制在外部域的 iframe 中显示的网页吗? (如,您无法控制实际的 iframe 标记本身或 iframe 标记所在页面上的任何其他内容......这是正确的吗?)
  • 为什么这是一个社区维基?如果不是这样,您可能会得到更好的答案。

标签: javascript html flash iframe rendering


【解决方案1】:

我不这么认为。

虽然您可以使用 url 参数(可以通过嵌入广告的 javascript 设置),但同源策略限制可以防止这种情况发生在页面上的偏移量。

【讨论】:

    【解决方案2】:

    根据 SoundManager2 Scott Schiller 的作者所说,JS->Flash 通信桥的延迟根据 Flash 电影是否在屏幕上存在细微差别。也就是说,当它不在屏幕上时,它会变慢。

    【讨论】:

    • 你能找到他的评论吗?
    【解决方案3】:

    这确实因浏览器而异,因为不同的浏览器与 Flash 插件的交互方式不同。我能找到的最准确的解释是旧的connectedpixel post

    在撰写本文时,Firefox 在页面上滚动之前并未初始化 Flash 对象。另一方面,IE 会在 Stage 元素滚动到视图中时调整其大小。没有给出浏览器、Flash 或操作系统的版本,因此自那次测试以来这可能已经改变。

    简而言之,我需要制作一个 Flash 对象并玩它,观察各种事件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-14
      • 1970-01-01
      • 2013-08-07
      • 2019-09-28
      • 2015-06-13
      • 2021-09-08
      • 1970-01-01
      • 2020-11-23
      相关资源
      最近更新 更多