我对 Salesforce 上的查看状态有疑问,需要帮助:Salesforce 已超出最大查看状态大小限制 (135KB)。我的网站获取视图状态大于 Salesforce 的限制。我在谷歌上搜索并获得了一些解决方案,但没有太大改善:(,有人帮助我吗?,非常感谢!
杰瑞
我对 Salesforce 上的查看状态有疑问,需要帮助:Salesforce 已超出最大查看状态大小限制 (135KB)。我的网站获取视图状态大于 Salesforce 的限制。我在谷歌上搜索并获得了一些解决方案,但没有太大改善:(,有人帮助我吗?,非常感谢!
杰瑞
我多次遇到这个问题。如果要减小内部大小,请使用 HTMl 表而不是页块表或数据表。这些页面块表(和其他顶点表)它们对表列和数据应用自己的内部验证,因此只需将所有内容更改为纯 html 表。通过这样做,您可以将其从 199 减少到 99 kb。我已经做了。
我相信有人可以填写更完整的答案。但第一步是阅读transient
关键字。控制器中标记为瞬态的属性/成员变量不会保存在 Viewstate 中。如果你有一堆不必要的东西,那么这会有所帮助。
http://www.salesforce.com/us/developer/docs/apexcode/Content/apex_classes_keywords_transient.htm
一些可能有帮助的修复是
在变量之前添加瞬态关键字,例如仅用于打印表格的列表。
使用 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