我的页面上有一个 af:outputText。
它的值需要很长时间才能生成,所以我不想在最初创建页面时生成。
相反,我希望页面在加载后对服务器进行异步调用,然后返回值将填充 outputText。
在 ADF 中实现这一目标的最佳方法是什么?
我的页面上有一个 af:outputText。
它的值需要很长时间才能生成,所以我不想在最初创建页面时生成。
相反,我希望页面在加载后对服务器进行异步调用,然后返回值将填充 outputText。
在 ADF 中实现这一目标的最佳方法是什么?
... or you use an af:poll component that checks the available status of the queried data. If the data is available, you disable the poll (ensure you PPR the af:poll component then)
Frank
这是一个可能可行的愚蠢想法:
将 outputText 的渲染属性设置为 false;这将导致在加载页面时不会评估其值表达式。
在页面加载时,向服务器侦听器触发 javascript AdfCustomEvent,然后该侦听器将切换呈现状态并 PPR 输出文本。
一种更复杂但可能更清洁的方法是研究 ADS 以某种方式延迟加载值。
Active Data Service (ADS) 非常适合这种情况。请参阅http://docs.oracle.com/cd/E15523_01/web.1111/b31974/adv_ads.htm
Lucas Jellema 在http://technology.amis.nl/2011/10/19/adf-faces-handle-task-in-background-process-and-show-real-time-progress上也有一个很好的使用 ADS 的例子-indicator-for-asynchronous-job-using-server-push-in-adf/
使用 af:poll 并将 af:OutputText 的部分触发设置为 af:poll 以便 OutputText 在第一次轮询时自动刷新。在轮询侦听器中将轮询间隔设置为 -1(禁用它)