zoukankan      html  css  js  c++  java
  • Visualforce 页面的生命周期

    了解 Visualforce 页面的生命周期可以让我们明白其各个元素的执行顺序、改变逻辑,从而提高开发效率,避免不必要的错误。

    官方文档中有详细的讲解。本文摘取其中的要点,作为一个总结。

    Visualforce 页面的请求方式

    Visualforce 页面包括两种请求方式:

    • get 请求,就是新建页面的请求,比如通过格式为 “/apex/XXX” 的 URL 请求打开名为 “XXX” 的页面
    • postback 请求,就是更新页面的请求,比如点击“保存”按钮更新页面的某些记录。当一个页面的 postback 请求被执行完毕以后,如果页面被重定向到和当前页面使用同一个控制器的另一个页面,那么会触发那个页面的 postback 请求

    get 请求的生命周期

    1. 执行和页面相关联的控制器中的构造函数
    2. 如果页面中包含自定义组件,那么执行和自定义组件相关联的控制器的构造函数,然后计算自定义组件中的表达式的值
    3. 执行 assignTo 属性中定义的赋值逻辑
    4. 执行 “apex:page” 部分的 action 属性中定义的逻辑
    5. 执行其他预定义的逻辑,比如和变量相关的 get 和 set 函数等
    6. 如果页面中包含 “apex:form” 部分,将其中相关联的部分保存在视图状态(View State)中,便于以后更新
    7. 将生成的 HTML 页面源码发送给浏览器,然后浏览器显示页面,并执行其中的 JavaScript 代码

    关于视图状态的删除:

    • 当有一个新的 get 请求时,原来的 Visualforce 页面中的视图状态会被删除
    • 当有一个 postback 请求时,比如用户重定向到使用同一个控制器的页面时,视图状态会被保留

    postback 请求的生命周期

    1. 解码视图状态,因为它将被用于数据和页面的更新
    2. 解析相关联的表达式,执行相关的 set 函数
    3. 执行和请求相关联的函数,并更新相关联的数据
    4. 如果这次请求的结果是重定向到原来的页面,那么视图状态会被更新
    5. 将 HTML 页面源码发送给浏览器用于显示页面
  • 相关阅读:
    一个界面描述标签的想法
    使用MyGeneration创建模板:介绍(翻译)
    ICE:C#和Java共同的服务器
    Spring.NET 快速入门 (翻译)
    TSQL命令在SQLServer查询中的运用
    SQL数据库修复
    区分汉字和字母的函数
    如何生成静态页
    delphi 开发扩展(一)
    20072008
  • 原文地址:https://www.cnblogs.com/chengcheng0148/p/visualforce_page_lifecycle.html
Copyright © 2011-2022 走看看