这可能听起来很傻,但请与我裸露,我只是在Javascript / AJAX中有非常基本的知识。 在JSF页面中,我有一个输入和一个建议框。通常,当我输入文本时:
h:inputText
建议框将开始显示建议的结果,这是正确的
但问题是,如果我输入文本时的请求需要很长时间才能得到响应,则建议框根本不显示。
我使用firebug,如果请求需要> 1.5秒,建议将失败。
1.5秒后,我仍然看到响应,但是没有刷新。
可能是什么原因?在我的Web应用程序中,还有许多其他事情运行得更长并且成功刷新。
我使用Richfaces 3.3.3
UPDATE1:要添加更多内容,如果请求需要1.59秒,则显示建议,然后立即淡出
UPDATE2:我通过将建议和输入放入
来解决这个问题a4j:region
但是,我仍然不明白为什么
答案 0 :(得分:1)
suggestionBox
component of RichFaces的timeout
属性定义了:
特定请求的响应等待时间。如果在此期间未收到回复,则请求被中止
您可以尝试增加超时值并测试它是否能解决您的问题。
请注意,您可以使用timeout
为视图中的所有Ajax请求定义a4j:queue
。
注意:由于未指定,我检查了RichFaces 3.x,但应该有类似RichFaces 4.x的内容。
答案 1 :(得分:0)
如果您使用的是Richfaces 4.x,我认为问题可以在richfaces暗示框内。 当我从Richfaces 3升级到第4版时,暗示框有很多问题。它只是没有出现在复杂的页面上。我最后用JQuery UI sugestionbox替换了richfaces suggestionbox和一些用于加载建议的Spring MVC控制器。
如果您使用的是Richfaces 4.3.x并且使用JQuery UI for suggestionbox不是一个选项,您可以尝试降级到Richfaces 4.2.x.我记得当我这样做时,这个建议开始出现在页面上,但在这个地方你可能会遇到Richfaces的其他问题。