问题标签 [state-saving]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
jsf - JSF 2.0 部分状态保存似乎不起作用
我正在评估在高流量网站中使用 JSF 的可能性。有人告诉我,在 JSF 2.0 中,组件树不存储在会话中,并且一旦组件树被修改,只会存储增量。
这是我正在查看的页面:
每次查看此页面时,都会为会话分配近 1K。如果我删除<form>
标签,会话中不会存储任何内容。
知道为什么将组件树存储在会话中吗?我认为这将根据回发请求计算。
java - 为什么 JSF 将 UI 组件的状态保存在服务器上?
JSF 将在服务器端保存 UI 组件的状态直到什么时间点以及何时从服务器内存中删除 UI 组件的状态信息?当应用程序上的登录用户浏览页面时,组件的状态是否会继续在服务器上累积?
我不明白在服务器上保持 UI 组件状态有什么好处!?直接将经过验证/转换的数据传递给托管 bean 还不够吗?我可以或应该尽量避免吗?
如果有数千个并发用户会话,这不会在服务器端消耗太多内存吗?我有一个应用程序,用户可以在其中发布有关某些主题的博客。这个博客的规模相当大。当有回帖或查看博客的请求时,这个大页面数据是否会保存为组件状态的一部分? 这会占用太多内存。这不是一个问题吗?
更新1:
现在,不再需要在使用 JSF 时保存状态。可以使用高性能的无状态 JSF 实现。有关详细信息和讨论,请参阅此博客和此问题。此外,在 JSF 规范中包含一个未解决的问题,即为JSF 提供无状态模式的选项。(PS如果这对您有用,请考虑为this和this的问题投票。)
更新 2 (24-02-2013):
Mojarra 2.1.19推出无状态模式的好消息!
看这里:
http://weblogs.java.net/blog/mriem/archive/2013/02/08/jsf-going-stateless?force=255
jsf - 为什么 JSF 保存组件树状态?
托管 bean 状态和组件树状态之间似乎存在差异。您可以通过使用@RequestScoped和@SessionScoped之类的注释来控制托管 bean 状态,但您似乎无法选择是否保存组件树状态(尽管您可以选择是否保存在服务器或客户端)。
似乎组件树状态应该只在单个请求期间作为临时数据结构需要,以帮助处理请求。它应该为每个请求从头开始重建。使用 JSF 2.0 部分状态保存使情况变得更好,因为只保存了表单数据,但我不明白为什么从前一个请求中获取表单数据是有用的。
如果您的应用程序仅使用请求范围托管的 bean,那么在请求之间保存组件树状态尤其没有意义。即使您的应用程序具有会话范围托管 bean,我也会假设托管 bean 将保持状态,并且组件树仍然不需要在请求之间具有任何状态。
java - 扩展 UIComponentBase 时如何保存状态
我正在创建一个复合组件,它将包装一个数据表以实现非常简单的分页。我需要在 ajax 请求之间保存状态(当前页码)。
我尝试在我的 FacesComponent 中创建字段,但我发现它们在 JSF 生命周期中被清除了:
我似乎无法在任何地方找到执行此操作的简明指南!创建复合组件时如何在请求之间保存状态?
jsf - JSF 2 - 回发时不保留动态添加的组件 ID
我在组件中有一个方面,我在其中使用动态添加组件
但是在回发时,当我遍历这个列表时,我意识到组件存在,但它们的 id 与我之前指定的不同。(更具体地说,这些 id 的形式为“j_id9、j_id10”等)
我在 StateManagementStrategyImpl 中调试了一些代码,并意识到它们在保存视图时故意不存储组件 ID。
我的问题是,为什么 JSF 不存储组件 ID?
java - Client side state saving, any way I could see state data sent to client?
In order to decide a better state saving method for my JSF app from amongst server side & client side saving, I wanting to see the saved state data when the state is saved to client.
I need to have an idea of how much data is transferred back & forth between the requests & if I reduce that to keep the advantages of client side saving(like all time responsiveness & no dead app after view expires)! Could I see this saved state in firebug plugin in firefox ? How ?
java - JSF 状态最初保存到服务器和会话超时转移到客户端?
是否有任何状态保存方法可以允许 JSF 应用程序在服务器上初始保存状态数据,但是在会话过期时间间隔之后,该状态被传输到客户端,这样即使服务器上的会话超时和内存更好,应用程序也始终响应在服务器上管理?
或者有什么方法可以实现?但我希望这应该成为 JSF 规范的一部分!
编辑
在 BalusC 的建议下,我对无状态 JSF原则及其当前实现印象深刻。如果这里的其他人也对将无状态 JSF 添加到 JSF 规范感兴趣,请考虑查看或投票这个问题。
无状态 JSF 为某些收益提供了巨大的性能提升,例如无法动态创建视图(例如通过绑定、JSTL 标记等)或修改它。
无状态 JSF 操作模式对于高负载应用程序和架构非常有用:
雅各布以前曾建议过: http ://weblogs.java.net/blog/jhook/archive/2006/01/experiment_goin.html
这将有助于 JSF 摆脱“速度慢且占用内存”的污名,并有助于跟上当前的技术趋势(无状态架构)。
jsf - java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:com.sun.faces.renderkit.ServerSideStateHelper.getState 处的 -1
当我在没有它的情况下使用此代码时,<p:tab>
它会按预期工作,
但是当我开始使用时<p:tab>
,它会引发以下异常:
这是如何引起的,我该如何解决?
jsf-2 - JSF 复合组件 - 尝试保存状态时的奇怪行为
我正在使用 Glassfish 3.2.2 和 JSF 2.1.11
我正在尝试创建一个复合组件,该组件将字符串和最大字符数作为参数,然后仅显示最大字符数,但它旁边会有一个“更多”链接,单击时将将文本扩展至全长,然后在其旁边有一个“更少”链接,以将其恢复为最大字符数。
我看到一些奇怪的行为,所以我想知道我是否做错了什么。
这是我的复合组件定义:
这里是 Java 组件:
不幸的是,每次调用 toggleExpanded 函数时,expanded 总是假的。
但是,如果我将复合组件更改为以下内容,则它可以工作。
如果我在 toggleExpanded 函数中放置一个断点,它只会在“更多”链接而不是“更少”链接上被调用。所以问题是为什么当我点击“less”链接时它没有被调用?这段代码不应该等同于上面的代码吗?
有没有更好的方法来保存组件中的状态?
iphone - 导航栏上的状态保存、导航控制器堆栈保存和手势识别器
我正在像这样加载我的视图控制器:
在我的堆栈的根视图控制器上,我在导航栏中添加了一个手势识别器。
但是,如果我将某个视图控制器推到顶部,它将不会加载此手势,因为viewDidLoad
不会调用根视图控制器,并且如果我访问它的viewControllers
属性,UINavigationController
则返回 nil。
任何想法如何继续这个手势?谢谢!