# Visualforce partial page refresh and remoting

*Platform Developer II Study Guide · User Interface · Last updated October 16, 2026 · https://www.certifyforce.com/study-guide/platform-developer-ii/user-interface/visualforce-partial-page-refresh-and-remoting*

Which Visualforce tag calls a controller action from an event, a JavaScript callback or a timer; how reRender, actionStatus, actionRegion and immediate change what is processed and redrawn; the postback order behind setters and getters; and when JavaScript remoting beats actionFunction.

- Certification: Salesforce Platform Developer II
- Exam section: User Interface
- Study guide: https://www.certifyforce.com/study-guide/platform-developer-ii

**Official exam objective:**

> Identify the techniques for using Visualforce to perform actions, partial page refreshes, and asynchronous operations.

## What the exam expects

- Pick the Visualforce component that calls a controller action from a DOM event, from JavaScript code or on a timer, and the one that limits what the server processes.
- Use `reRender` and `<apex:actionStatus>` for partial refreshes with visible progress, and apply the `<apex:actionPoller>` rules.
- Tell `<apex:actionRegion>` from `immediate="true"` when required fields block an AJAX action.
- Predict controller behaviour during a postback: setters before actions, getters in no defined order.
- Choose between JavaScript remoting and `<apex:actionFunction>`, and fix a broken `@RemoteAction` method.

Key terms: **action method** (controller logic called from page markup), **`reRender`** (the IDs redrawn when an AJAX request returns), **action region** (the part of the page the server processes), **postback** (a request back to the same page that runs setters, then the action), **JavaScript remoting** (calling a static `@RemoteAction` method from JavaScript with a callback).

Controller types and standard actions are in the Platform Developer guide's *Apex for page components: controllers and wire adapters* and *Placing Lightning components, flows and Visualforce*; this unit covers the AJAX layer.

## Key facts

| Fact | Detail | Source |
|---|---|---|
| `<apex:actionSupport>` | Adds AJAX to another Visualforce component's DOM event | [apex:actionSupport](https://developer.salesforce.com/docs/atlas.en-us.pages.meta/pages/pages_compref_actionSupport.htm) |
| `<apex:actionFunction>` | Defines a JavaScript function; must be inside `<apex:form>`; params bound by order | [apex:actionFunction](https://developer.salesforce.com/docs/atlas.en-us.pages.meta/pages/pages_compref_actionFunction.htm) |
| Poller interval | Seconds; 5 or more; default 60; no controller expression | [apex:actionPoller](https://developer.salesforce.com/docs/atlas.en-us.pages.meta/pages/pages_compref_actionPoller.htm) |
| Poller sessions | Keeps login sessions alive; page won't time out from inactivity | [apex:actionPoller](https://developer.salesforce.com/docs/atlas.en-us.pages.meta/pages/pages_compref_actionPoller.htm) |
| `<apex:actionRegion>` | Limits what the server processes, not what is redrawn | [apex:actionRegion](https://developer.salesforce.com/docs/atlas.en-us.pages.meta/pages/pages_compref_actionRegion.htm) |
| `immediate="true"` | Skips validation, doesn't update the data model; recommended for cancellation only | [immediate Attribute](https://developer.salesforce.com/docs/atlas.en-us.pages.meta/pages/pages_best_practices_perf_immediate_attr.htm) |
| Setters | Run before any action method | [Controller Methods](https://developer.salesforce.com/docs/atlas.en-us.pages.meta/pages/pages_controller_methods.htm) |
| Getters | No defined order or call count; keep idempotent | [Controller Methods](https://developer.salesforce.com/docs/atlas.en-us.pages.meta/pages/pages_controller_methods.htm) |
| `@RemoteAction` | Static, public or global; no overloads | [Declaring a Remote Method](https://developer.salesforce.com/docs/atlas.en-us.pages.meta/pages/pages_js_remoting_declaring_remote_method.htm) |
| Remoting timeout | 30 seconds default, up to 120 seconds | [JavaScript Remoting Limits](https://developer.salesforce.com/docs/atlas.en-us.pages.meta/pages/pages_js_remoting_limits.htm) |
| Visualforce continuation | Action method returns the `Continuation` object | [Asynchronous Callouts](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_continuation_process.htm) |

## Check yourself

- Why does `immediate="true"` break an action that needs the value the user just entered?
- When should you use `<apex:actionFunction>` rather than `<apex:actionSupport>`?
- What are the interval rules for `<apex:actionPoller>`?
- Why should a Visualforce getter have no side effects?

## Sources

- [Controller Methods](https://developer.salesforce.com/docs/atlas.en-us.pages.meta/pages/pages_controller_methods.htm)
- [apex:actionSupport](https://developer.salesforce.com/docs/atlas.en-us.pages.meta/pages/pages_compref_actionSupport.htm)
- [apex:actionFunction](https://developer.salesforce.com/docs/atlas.en-us.pages.meta/pages/pages_compref_actionFunction.htm)
- [apex:actionPoller](https://developer.salesforce.com/docs/atlas.en-us.pages.meta/pages/pages_compref_actionPoller.htm)
- [apex:actionRegion](https://developer.salesforce.com/docs/atlas.en-us.pages.meta/pages/pages_compref_actionRegion.htm)
- [apex:actionStatus](https://developer.salesforce.com/docs/atlas.en-us.pages.meta/pages/pages_compref_actionStatus.htm)
- [Use the immediate Attribute Carefully](https://developer.salesforce.com/docs/atlas.en-us.pages.meta/pages/pages_best_practices_perf_immediate_attr.htm)
- [Order of Execution for Visualforce Page Postback Requests](https://developer.salesforce.com/docs/atlas.en-us.pages.meta/pages/pages_controller_postback_request.htm)
- [Handle Multiple Concurrent Requests](https://developer.salesforce.com/docs/atlas.en-us.pages.meta/pages/pages_best_practices_perf_concurrent.htm)
- [Comparing JavaScript Remoting and apex:actionFunction](https://developer.salesforce.com/docs/atlas.en-us.pages.meta/pages/pages_js_remoting_compare_actionfunction.htm)
- [When to Use JavaScript Remoting](https://developer.salesforce.com/docs/atlas.en-us.pages.meta/pages/pages_js_remoting_when_to_use.htm)
- [Declaring a Remote Method in Apex](https://developer.salesforce.com/docs/atlas.en-us.pages.meta/pages/pages_js_remoting_declaring_remote_method.htm)
- [JavaScript Remoting Example](https://developer.salesforce.com/docs/atlas.en-us.pages.meta/pages/pages_js_remoting_example.htm)
- [JavaScript Remoting Limits and Considerations](https://developer.salesforce.com/docs/atlas.en-us.pages.meta/pages/pages_js_remoting_limits.htm)
- [Process for Using Asynchronous Callouts](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_continuation_process.htm)

## About the full unit

The "Core concepts", "Exam traps" and "Worked scenario" sections of this unit, its 9 linked practice questions, and unlimited timed mock exams are included with the Platform Developer II pack (USD $19): https://www.certifyforce.com/practice-exams
