apex:actionPoller
指定した間隔に従って AJAX 要求をサーバーに送信するタイマーです。各要求により、ページの全体または一部を更新できます。
<apex:actionPoller> は作用するリージョン内にある必要があります。たとえば、<apex:actionRegion> と <apex:actionPoller> を併用するには、<apex:actionPoller> が <apex:actionRegion> 内にある必要があります。
<apex:actionPoller> を使用するときの考慮事項
- <apex:actionPoller> で使用する action メソッドを軽量にする。これは、<apex:actionPoller> からコールされる action メソッドで、DML の実行、外部サービスコール、およびリソースを大量に消費する他の操作を回避するためのベストプラクティスです。指定した間隔で <apex:actionPoller> から繰り返しコールされる action メソッドの影響を考慮します。特に、広範囲にわたって配布されたり、長期間開いたままになったりするページで使用する場合には注意が必要です。
- <apex:actionPoller> では、ログインセッションをアクティブに保持しながら接続が定期的に更新されます。<apex:actionPoller> が存在するページは、非アクティブであるという理由でタイムアウトになることはありません。
- 同時 AJAX 要求によって互いが上書きされ、Visualforce ページが破損することを防ぐため、AJAX 要求を送信する他のコンポーネントがページに含まれている場合は、<apex:actionPoller> を使用しないでください。
- 他のアクションの結果として再表示される場合は、<apex:actionPoller> 自体がリセットされます。
- Visualforce 式を使用して Apex コントローラーからのサーバー要求の期間を定義することはできません。
- このコンポーネントは拡張リストとは併用しないでください。
例
1<!-- Page -->
2
3<apex:page controller="exampleCon">
4 <apex:form>
5 <apex:outputText value="Watch this counter: {!count}" id="counter"/>
6 <apex:actionPoller action="{!incrementCounter}" reRender="counter" interval="15"/>
7 </apex:form>
8</apex:page>
9
10
11/*** Controller: ***/
12
13public class exampleCon {
14 Integer count = 0;
15
16 public PageReference incrementCounter() {
17 count++;
18 return null;
19 }
20
21 public Integer getCount() {
22 return count;
23 }
24}属性
| 属性名 | 属性型 | 説明 | 必須かどうか | API バージョン | 通用範囲 |
|---|---|---|---|---|---|
| action | ApexPages.Action | コンポーネントからの定期的な AJAX 更新要求によって呼び出される action メソッド。このメソッドを参照するには、差し込み項目の構文を使用します。たとえば、action="{!incrementCounter}" ではコントローラーの incrementCounter() メソッドを参照します。アクションが指定されていない場合、ページは単に更新されます。 | 10.0 | グローバル | |
| enabled | Boolean | ポーラーが有効であるかどうかを指定する boolean 値。指定されていない場合、この値はデフォルトの true に設定されます。 | 10.0 | グローバル | |
| id | String | ページの他のコンポーネントがコンポーネントを参照できるようにする識別子。 | 10.0 | グローバル | |
| interval | Integer | AJAX 更新要求間の秒単位の期間。この値は 5 秒以上である必要があります。指定されていない場合、デフォルトは 60 秒です。この期間は更新要求間のみの間隔です。更新要求がサーバーに送信されると、この要求はキューに入り、クライアントでの処理と表示にさらに時間がかかる可能性があります。 | 10.0 | グローバル | |
| oncomplete | String | AJAX 更新要求の結果がクライアントで完了したときに呼び出される JavaScript。 | 10.0 | グローバル | |
| onsubmit | String | AJAX 更新要求がサーバーに送信される前に呼び出される JavaScript。 | 10.0 | グローバル | |
| rendered | Boolean | コンポーネントをページに表示するかどうかを指定する boolean 値。指定されていない場合、この値はデフォルトの true に設定されます。 | 10.0 | グローバル | |
| reRender | Object | AJAX 更新要求の結果がクライアントに返されるときに再作成される 1 つ以上のコンポーネントの ID。この値には、単一の ID、ID のカンマ区切りのリスト、または ID のリストまたはコレクションの差し込み項目の式を使用できます。 | 10.0 | グローバル | |
| status | String | AJAX 更新要求の状況を表示する関連付けられているコンポーネントの ID。「actionStatus コンポーネント」を参照してください。 | 10.0 | グローバル | |
| timeout | Integer | AJAX 更新要求がタイムアウトするまでの時間 (ミリ秒)。 | 10.0 | グローバル |