Salesforce Dictionary - Free Salesforce GlossarySalesforce Dictionary
DictionaryPPartial Page
AnalyticsBeginner

Partial Page

Partial Page is the rendering and update technique in legacy Salesforce Visualforce pages where only a portion of the page is sent back to the server and re-rendered, instead of the entire page reloading.

§ 01

Definition

Partial Page is the rendering and update technique in legacy Salesforce Visualforce pages where only a portion of the page is sent back to the server and re-rendered, instead of the entire page reloading. It is implemented through the apex:actionRegion, rerender, and apex:actionFunction tags, and it lets developers build forms that update specific sections (a related list refresh, a dependent picklist) without losing the user's scroll position or unsaved input on the rest of the page.

Partial Page belongs to the Visualforce era. Lightning Experience and Lightning Web Components handle the same need through reactive data binding and Lightning Data Service, which means partial-page techniques rarely come up in greenfield development today. The term still matters because thousands of customer-built Visualforce pages remain in production and partial-page handling is the right tool when extending or debugging them.

§ 02

Why partial-page rendering exists and where it still matters in legacy Visualforce

Full-page postback vs partial postback

A standard Visualforce form submit posts the entire page back to the server, runs the controller method, and re-renders the full page. This loses the user's scroll position, clears unsaved input on unrelated fields, and burns View State on every action. A partial postback (rerender) posts only the form fields inside a designated apex:actionRegion, runs the controller method, and re-renders only the components named in the rerender attribute. The user's input on the rest of the page is preserved, the scroll position survives, and the View State payload travels lighter.

The rerender attribute

The rerender attribute on apex:commandButton, apex:commandLink, apex:actionSupport, and apex:actionFunction takes a comma-separated list of component IDs to re-render after the action runs. Components inside an apex:outputPanel with a matching ID are re-rendered with the new server-side state; everything else stays untouched. The list can include nested panels, related lists, and even another component on a different tab of the page. The technique is straightforward once you internalize that you are addressing IDs on the page, not Apex variables.

apex:actionRegion and scoped validation

Wrapping form fields in apex:actionRegion limits which fields are sent back during the postback. Without the region, every form field on the page is included, triggering the full set of validation rules. With a region, only the fields inside the region post, which means a partial action that updates a related list does not fire a validation rule on an unrelated required field. This is critical for any page where a user might trigger a small re-render before completing the main form; without scoped action regions, the validation messages cascade everywhere.

apex:actionFunction for JavaScript-driven partial updates

For JavaScript-triggered postbacks (a button click, a select change), apex:actionFunction declares a server-side action callable from a client-side JavaScript function. The function takes parameters, calls the controller method, and triggers a rerender on completion. This is the standard pattern for dependent picklists, conditional field visibility based on a checkbox, and custom Save buttons that need to run extra JavaScript before submitting. The trade-off is that any logic before the call has to live in JavaScript, which can erode the all-server simplicity Visualforce optimizes for.

Partial page and View State

Partial postbacks still serialize and deserialize View State on every action, just like full postbacks. A page with bloated controller state runs into the 170 KB limit on the first partial action as easily as on the first full save. Partial-page techniques optimize user experience (scroll, input, perceived speed) but do not save on View State unless the design uses the transient keyword aggressively or paginates large collections. The two optimizations are complementary, not substitutes.

Common partial-page patterns

The most common partial-page patterns are dependent picklists (changing country re-renders the state list), inline edit on a related list (saving one row re-renders just that row), tabbed pages with lazy loading (clicking a tab re-renders only that tab content), and progressive disclosure (toggling a checkbox re-renders the conditional section below). Each pattern is small in isolation; a single page with a dozen partial-page interactions becomes the bulk of Visualforce form development. Mastering rerender and apex:actionRegion is the difference between a page that feels responsive and a page that flashes white on every click.

Why Lightning replaced partial pages

Lightning Web Components and Aura use reactive data binding: when a JavaScript property changes, the platform re-renders the dependent template nodes automatically. There is no concept of an apex:actionRegion or a rerender attribute because the framework already knows which DOM nodes depend on which data. The same partial-update behavior is achieved declaratively, without ID lists, with much smaller payload sizes (no signed View State). Modern Salesforce development almost never uses Visualforce partial-page techniques because the new framework solves the problem at a different layer.

§ 03

Add a partial-page rerender to a Visualforce form

Re-render only the related list after a custom action runs, so the rest of the form keeps its unsaved values and the user does not lose their scroll position.

  1. Identify the component to re-render

    Wrap the section you want to refresh inside an apex:outputPanel with a stable id attribute (id="rl"). This is the panel the rerender attribute will target.

  2. Add an apex:actionRegion

    Wrap the form fields the partial action depends on inside an apex:actionRegion. Fields outside the region are excluded from the postback and their validation does not fire.

  3. Place the command button

    Add an apex:commandButton with action pointing to the controller method and rerender pointing to the panel id (rerender="rl").

  4. Test the round-trip

    Run the page. Type into a field outside the action region. Click the partial-action button. Confirm the panel re-renders, the field outside the region keeps its value, and the user sees no full-page flash.

  5. Validate scoped validation

    Add a required field outside the region. Click the partial-action button without filling it. The button should still execute; the required field validation only fires on the full save.

  6. Optimize View State

    Mark any controller variable that does not need to persist across postbacks as transient. Run the View State inspector to confirm the page stays under 170 KB.

Key options
apex:outputPanelremember

Wrapper that gets a stable ID for the rerender attribute to target.

apex:actionRegionremember

Scope that limits which form fields post and which validation rules fire.

rerender attributeremember

Comma-separated list of component IDs to refresh after the action.

apex:actionFunctionremember

JavaScript-callable server action; pairs with rerender for client-driven partial updates.

Gotchas
  • The rerender attribute must reference a component ID that exists at the time the postback returns. A component conditionally rendered out (rendered="false") cannot be re-rendered back in; use display:none CSS to keep the DOM node available.
  • Partial postbacks still serialize the full View State. They are not a View State optimization; they are a user-experience optimization.
  • Action regions limit which fields post. Forgetting to wrap a dependent field can leave the controller looking at a stale value the partial action did not include.
  • Lightning Web Components do not use partial-page techniques; do not port these patterns when migrating a Visualforce page to LWC, refactor to reactive data binding instead.
§

Trust & references

Sources

Cross-checked against the following references.

Official documentation

Straight from the source - Salesforce's reference material on Partial Page.

Keep learning

Hands-on resources to go deeper on Partial Page.

Was this entry helpful?
Help us write better definitions. Quick reactions or detailed edit suggestions.

About the Author

Dipojjal Chakrabarti is a B2C Solution Architect with 29 Salesforce certifications and over 13 years in the Salesforce ecosystem. He runs salesforcedictionary.com to help admins, developers, architects, and cert/interview candidates sharpen their fundamentals. More about Dipojjal.

§

Test your knowledge

Q1. What is a Partial Page?

Q2. What's the modern equivalent?

Q3. Should you use Partial Pages today?

§

Discussion

Loading…

Loading discussion…