我目前正在开发一个具有单页设计的JSF应用程序,例如在桌面应用程序中。这些部分被放置在选项卡中,并且每个子操作,例如编辑或插入项目,都显示在对话框中。
成为问题的是 ViewState 的大小和每个请求的处理时间。目前,POST 中 ViewState 的初始大小为 200kb(并且启用了压缩)。请求持续 200 到 400 毫秒(在我自己的机器上,除了我之外没有其他用户)。
将状态保存设置为会话大大减少了请求,但大大增加了处理时间——现在从 350 到 600 毫秒。因为这是Intranet应用程序,网络传输很便宜,所以最好发送更多,过程更长。
我不知道如何处理这个问题。是否可以减少 JSF 组件占用的空间?它们中的大多数不会在每次点击时都发生变化,但它们似乎无论如何都被反序列化和处理了。或者我应该从 JSF bean 中丢弃所有数据(例如下拉列表的字典)并在服务层中使用密集缓存?还是我可以使用其他选项/技巧/改进?