3

我的页面上有一个 af:outputText。

它的值需要很长时间才能生成,所以我不想在最初创建页面时生成。

相反,我希望页面在加载后对服务器进行异步调用,然后返回值将填充 outputText。

在 ADF 中实现这一目标的最佳方法是什么?

4

4 回答 4

4

... 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

于 2012-09-11T20:32:49.003 回答
0

这是一个可能可行的愚蠢想法:

将 outputText 的渲染属性设置为 false;这将导致在加载页面时不会评估其值表达式。

在页面加载时,向服务器侦听器触发 javascript AdfCustomEvent,然后该侦听器将切换呈现状态并 PPR 输出文本。

一种更复杂但可能更清洁的方法是研究 ADS 以某种方式延迟加载值。

于 2012-09-10T20:05:57.520 回答
0

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/

于 2013-01-24T19:05:14.743 回答
0

使用 af:poll 并将 af:OutputText 的部分触发设置为 af:poll 以便 OutputText 在第一次轮询时自动刷新。在轮询侦听器中将轮询间隔设置为 -1(禁用它)

于 2015-11-15T04:25:26.043 回答