【问题标题】:how to minimize the View State Size on Salesforce如何最小化 Salesforce 上的视图状态大小
【发布时间】:2013-09-05 09:56:40
【问题描述】:

我在 Salesforce 上查看状态时遇到问题,需要帮助: Salesforce 已超出最大视图状态大小限制 (135KB)。我的网站获取视图状态大于 Salesforce 的限制。我在谷歌上搜索并获得了一些解决方案,但没有太大改善:(,有人帮助我吗?非常感谢!

杰瑞

【问题讨论】:

  • 没有代码我们帮不上什么忙。

标签: salesforce


【解决方案1】:

我多次遇到这个问题。如果要减小内部大小,请使用 HTMl 表而不是页块表或数据表。 这些页面块表(和其他顶点表)它们对表列和数据应用自己的内部验证,因此只需将所有内容更改为纯 html 表。 通过这样做,您可能会将其从 199 减少到 99 kb。我已经做了。

【讨论】:

    【解决方案2】:

    我相信有人可以填写更完整的答案。但第一步是阅读transient 关键字。控制器中标记为瞬态的属性/成员变量不会保存在 Viewstate 中。如果你有一堆不必要的东西,那么这会有所帮助。

    http://www.salesforce.com/us/developer/docs/apexcode/Content/apex_classes_keywords_transient.htm

    【讨论】:

    • 感谢您的回复!我对变量使用了瞬态关键字,但它并没有减少而是增加,所以很奇怪。我看到降序是:内部、表达式和控制器。控制器包含小尺寸。有什么办法可以减少内部或表达式?非常感谢!杰里
    • 我也尽我所能尝试了瞬态,但它使视图状态增加了近一倍
    【解决方案3】:

    最好的第一步是查看哪些内容占用了最大的视图状态。您可以通过在用户配置文件中启用开发模式来查看它。一些技巧和一个很好的介绍是here 另一个更高级的有用资源是answer(关于内部部分)

    【讨论】:

      【解决方案4】:

      一些可能有帮助的修复是

      在变量之前添加瞬态关键字,例如仅用于打印表格的列表。

      使用 HTML 组件而不是 Salesforce 组件(大多数情况下,如果 SF 组件在 apex:repeat 中使用)。 SF 组件比 HTML 组件消耗更多的视图状态。例如。使用 HTML 表格而不是 apex:pageBlockTable。

      希望这会有所帮助。

      阅读更多关于它的信息

      http://www.salesforce.com/us/developer/docs/pages/Content/pages_best_practices_performance.htm

      http://wiki.developerforce.com/page/An_Introduction_to_Visualforce_View_State

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-04-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-08
        • 1970-01-01
        相关资源
        最近更新 更多