f:ajax
和a4j:ajax
标签之间是否存在显着差异?
我知道a4j:来自Richfaces 4的ajax基于原生f:ajax JSF2标签添加了一些在f:ajax中找不到的属性,如onbegin
,onbeforedoupdate
,bypassUpdates
,{ {1}},limitRender
和status
,但在我只需要发送简单的ajax请求或部分呈现时使用哪一个? f:ajax和a4j:ajax之间是否存在性能问题?
答案 0 :(得分:16)
<a4j:ajax>
标记只是基本<f:ajax>
标记的更方便的形式。您可以在this page中找到所有差异的完整概述。
execute
属性支持指向@region
的额外<a4j:region>
值。 execute
和render
属性中的任何EL都在当前请求中解析,而不是在初始请求中解析。
两个标签的onevent
属性的JS函数将被调用3次(传入的data.status
具有值begin
,complete
,{{ 1}})。当您只对其中一个感兴趣或希望以不同方式对待它们时,这会强制您使用success
或switch
。 if
分别使<a4j:ajax>
,onbegin
和onbeforedomupdate
属性更方便。另请参阅此相关问题: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/