Visualforce 页面中的 <apex: actionPoller> 组件

17 Mar 2025 | 4 分钟阅读

<apex:actionPoller> 组件是一种特殊的组件,它基于时间和间隔工作。它是一个定时器,用于根据指定的时间间隔向服务器发送 AJAX 请求。

<apex:actionPoller> 组件应在其作用的区域内使用。如果我们要将 <apex:actionPoller><apex: actionRegion> 一起使用,则应在 <apex:actionRegion> 组件中使用 <apex:actionPoller>

为了使用 <apex:actionPoller> 组件,我们必须考虑以下事项

  1. action 方法应该是轻量级的,我们在 <apex:actionPoller> 中定义。在 action 方法中,我们需要避免使用 DML、外部服务调用和其他资源密集型操作。
  2. 连接由 <apex:actionPoller> 组件定期刷新,因此我们必须保持登录会话处于活动状态。由于不活动,带有 <apex:actionPoller> 的 apex 页面不会超时。
  3. <apex:actionPoller> 组件由于另一个操作而被重新渲染时,它会重置自身。
  4. 对于定义来自 apex 控制器的服务器请求的时间间隔,我们不能使用 Visualforce 表达式。
  5. 我们需要避免将 actionPoller 与增强列表一起使用。

<apex:actionPoller> 组件具有以下属性

1. action

action 属性的类型为 ApexPages.Action,它定义了 action 方法。该 action 方法由来自组件的周期性 AJAX 更新请求调用。当此组件中未定义 action 方法时,页面只会刷新。

语法

2. enabled

enabled 属性的类型为 Boolean,用于指定 <apex:actionPoller> 组件的活动和不活动状态。默认情况下,其值设置为 true。

语法

3. id

id 属性的类型为字符串,它是一个唯一的标识符,允许页面上的其他组件引用此组件。

语法

4. interval

interval 属性的类型为 Integer,用于指定 AJAX 更新请求之间的时间间隔(以秒为单位)。此属性的值必须为 5 秒或更大。默认情况下,其值设置为 60 秒。

语法

5. oncomplete

oncomplete 属性用于指定当 AJAX 更新请求的结果在客户端上完成时调用的 JavaScript 方法。

语法

6. onsubmit

onsubmit 属性用于指定在向服务器发送 AJAX 更新请求之前调用的 JavaScript 方法。

语法

7. rendered

rendered 属性的类型为 Boolean,用于指定当前组件是否在页面上呈现。默认情况下,其值设置为 true。

语法

8. reRender

当我们希望在客户端收到 AJAX 更新请求的结果后,重新绘制页面上的一个或多个组件时,我们使用此组件来指定这些组件的 Id。

语法

9. status

status 属性的类型为字符串,用于指定负责显示 AJAX 更新请求状态的组件的 id。

语法

10. timeout

timeout 属性用于定义 AJAX 更新请求应超时的时长。

语法

让我们看一个例子来了解如何在 VF 中使用 <apex:actionPoller> 组件

ApexActionPollerExample.vfp

ApexActionPollerController.apxc

输出

apex:actionPoller component in Visualforce Page