【问题标题】:Delayed rendering of components outside of the viewport in Flex在 Flex 中延迟渲染视口之外的组件
【发布时间】:2012-06-26 17:11:58
【问题描述】:

我正在寻求一些关于快速显示我们的报告的建议。我正在处理的问题是我收到了一个定义我们布局的 XML 数据结构。报告可以是 2 到 3 页,也可以是 20 到 30 页。因此,为了使报告尽快显示,我只想呈现报告的可见部分。以下是我需要克服的问题,我正在寻找一些如何实现这一目标的建议。

为了获得更好的可视化效果,可以将其视为 Word 文档。报告有部分,我希望能够让它们尽快显示。

1) 当然,我不知道要添加的子组件的高度。是否有任何技术可以确定我添加的组件是否不包含在视口中,我是否可以触发滚动条移动。

2) 我正在考虑向子组件添加估计,然后使用它来设置父容器的高度。然后当我收到滚动条移动事件时,我会检查子组件是否已添加到父组件,如果没有添加它们。无论如何都可以在不渲染组件的情况下获得组件的高度?

3) Flex 是否支持任何可以实现此目的的内置功能。

欢迎任何其他技术。基本上,我希望尽快将报告显示给用户,并延迟渲染不在屏幕上的组件。

欢迎提出任何建议。提前致谢。

添加信息。
很难提供代码,因为我还没有编码。让我尝试扩展一些细节。我有一个父容器,我在其中获取一些 XML,并使用 XML 根据 XML 中的信息创建子组件。现在,当我们这样做时,可能需要很长时间才能呈现长报告。我想要做的是通过延迟那些子对象的渲染来减少渲染时间。我研究了诸如创建策略和 createDeferredContent 之类的东西,但不确定这是否是正确的方法。猜猜我需要解决的一般问题是,一旦您在父视口之外,如何停止渲染对象。我想要的是一个类似功能的项目渲染器,但孩子之间没有相似之处。也许一张图片可能有用(一旦我达到 10 分就会添加)?

【问题讨论】:

  • 这个问题太含糊了;我认为您必须添加细节,可能还有代码,以便我们提供更多细节。
  • 很难提供代码,因为我还没有编写代码。让我尝试扩展一些细节。
  • 支持问题以帮助获得所需的 10 分。
  • 谢谢。越来越近。 :D

标签: apache-flex rendering deferred-execution


【解决方案1】:

useVirtualLayout 开启的情况下使用 spark 列表。这就是它的作用。

孩子之间总是有相似之处,但如果找不到,可以使用itemRendererFunction

【讨论】:

  • 因此,如果所有子项都是不同类型的组件,则此方法有效。考虑一个包含不同部分的报告。一个是带有节标题的 Grid,另一个是带有一系列图像的 HGroup。
  • 如果我认为它符合我的目标,我会深入研究并反馈。
  • 快速浏览一下,这看起来像是我认为我们需要前进的方向。感谢艾米的指点。
  • 有一个快速跟进的问题。鉴于案例中的行将是嵌套组件(相当复杂),它们作为项目渲染器是否值得关注?被告知项目渲染应该是轻量级的,这些绝对不是轻量级的。这是一个桌面应用程序。
  • 如果屏幕上有 500 个,是的,它们应该是轻量级的。但是,在我看来,您一次计划在屏幕上播放 2-3 个左右。由于它们被渲染为 List/ItemRenderer 架构的一部分这一事实所带来的额外开销是如果你自己编写执行相同操作的逻辑可能会得到的开销。
猜你喜欢
  • 1970-01-01
  • 2011-07-07
  • 2015-08-28
  • 1970-01-01
  • 1970-01-01
  • 2020-11-14
  • 2011-12-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多