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

10

f:ajax标签和a4j:ajax标签之间有何显著区别?

我知道来自Richfaces 4的a4j:ajax是基于本地的f:ajaxJSF2标签添加了一些在f:ajax中找不到的属性,例如onbeginonbeforedoupdatebypassUpdateslimitRenderstatusfocus。但是在只需要发送简单的ajax请求或部分渲染时应该使用哪一个? 在f:ajaxa4j:ajax之间是否存在性能问题?

2个回答

16
<a4j:ajax> 标签是基本的 <f:ajax> 标签的更方便的形式。您可以在此页面找到所有差异的漂亮概述。 execute 属性支持额外的 @region 值,指向 <a4j:region>。任何 EL 在 executerender 属性中都会在当前请求中解析,而不是在初始请求中解析。
这两个标签的 onevent 属性的 JS 函数将被调用 3 次(传入的 data.status 然后具有值 begincompletesuccess)。这迫使你在你只对其中一个感兴趣或想要以不同的方式处理它们时使用 switchif。使用 <a4j:ajax> 可以通过分别使用 onbeginonbeforedomupdateoncomplete 属性来更方便地实现。另请参见这个相关问题:JSF 2: How show different ajax status in same input? 如果您不对这些增强功能感兴趣,那么使用 <f:ajax> 也应该完全没有问题。性能差异(必须)完全可以忽略,不应成为选择其中之一的原因。

2

谢谢Max,你的博客很棒。 - Victor Martinez
你好Max。这个链接似乎不再有效了。我能在其他地方找到这些信息吗? - Gio
嗨 - 这是正确的链接:https://maxkatz.org/2010/08/19/what-richfaces-a4jajax-adds-on-top-jsf-2-fajax-tag/(我很多年前将我的博客迁移到了自己的域名)。 - Max Katz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接