Transient Variables Example

DEX450 - Introductions and Overview

📄 第 506 页 🎬 视频课程

课程章节介绍

同学们,今天我们来聊聊Salesforce中的,暂时变量,,也就是用`transient`关键字声明的变量。这个知识点特别重要,尤其是当你开发Visualforce页面时,想要优化性能、减少页面加载时间的时候。 ### 什么是暂时变量? 暂时变量就是用`transient`关键字标记的变量。它的特点是:,不会被保存在页面的视图状态中,。视图状态是Salesforce用来保存页面数据的一种机制,但如果数据量太大,可能会影响页面性能。所以,如果你有一些数据不需要在页面回发(比如刷新或提交)时保留,就可以用`transient`来声明它。 ### 为什么要用暂时变量? 举个例子,假设你在页面上显示一些临时数据,比如当前时间或者一些计算出来的值。这些数据不需要在用户操作后保留,那么用`transient`声明它们,可以减少视图状态的大小,从而让页面加载更快。 ### 示例代码 下面是一个完整的例子,我们来看一下: ```apex public class MyController { // 这是一个普通的变量,会被保存在视图状态中 public String normalVariable { get; set; } // 这是一个暂时变量,不会被保存在视图状态中 public transient String transientVariable { get; set; } public MyController() { normalVariable = '这是普通变量,会被保存'; transientVariable = '这是暂时变量,不会被保存'; } } ``` 在这个例子中: - `normalVariable`是一个普通的变量,它的值会被保存在视图状态中。 - `transientVariable`是一个暂时变量,它的值不会被保存。 ### 在Visualforce页面中使用 接下来,我们在Visualforce页面中使用这个控制器: ```html

普通变量: {!normalVariable}

暂时变量: {!transientVariable}

``` 当你运行这个页面时,两个变量都会正常显示。但是,如果你刷新页面或者提交表单,`transientVariable`的值会丢失,因为它没有被保存在视图状态中,而`normalVariable`的值会保留。 ### 总结 - ,暂时变量,用`transient`关键字声明,不会被保存在视图状态中。 - 适合用于临时数据,比如计算值、当前时间等。 - 使用暂时变量可以减少视图状态大小,提升页面性能。 希望这个例子能帮助大家理解暂时变量的用法。如果有任何问题,欢迎随时提问!