f:ajax和a4j:ajax之间有什么区别吗?

时间:2011-09-28 22:22:57

标签: ajax jsf-2 richfaces

f:ajaxa4j:ajax标签之间是否存在显着差异?

我知道a4j:来自Richfaces 4的ajax基于原生f:ajax JSF2标签添加了一些在f:ajax中找不到的属性,如onbeginonbeforedoupdatebypassUpdates,{ {1}},limitRenderstatus,但在我只需要发送简单的ajax请求或部分呈现时使用哪一个? f:ajax和a4j:ajax之间是否存在性能问题?

2 个答案:

答案 0 :(得分:16)

<a4j:ajax>标记只是基本<f:ajax>标记的更方便的形式。您可以在this page中找到所有差异的完整概述。

execute属性支持指向@region的额外<a4j:region>值。 executerender属性中的任何EL都在当前请求中解析,而不是在初始请求中解析。

两个标签的onevent属性的JS函数将被调用3次(传入的data.status具有值begincomplete,{{ 1}})。当您只对其中一个感兴趣或希望以不同方式对待它们时,这会强制您使用successswitchif分别使<a4j:ajax>onbeginonbeforedomupdate属性更方便。另请参阅此相关问题:JSF 2: How show different ajax status in same input?

如果您对这些增强功能不感兴趣,那么使用oncomplete也应该完全没问题。性能差异(并且必须)完全可以忽略不计,而不是选择其中一种的原因。

答案 1 :(得分:2)

以下是有关f:ajax和a4j之间差异的更多信息:ajax:http://mkblog.exadel.com/2010/08/what-richfaces-a4jajax-adds-on-top-jsf-2-fajax-tag/