richface - ¿Hay alguna diferencia entre f: ajax y a4j: ajax?
richfaces example (2)
¿Hay alguna diferencia significativa entre las etiquetas f:ajax
y a4j:ajax
?
Sé de a4j: ajax de Richfaces 4 se basa en la etiqueta nativa f: ajax JSF2 agregando algunos atributos que no se encuentran en f: ajax como onbegin
, onbeforedoupdate
, bypassUpdates
, limitRender
, status
y focus
pero cuál usar cuando solo necesito enviar una simple solicitud ajax o representación parcial? ¿Hay problemas de rendimiento entre f: ajax y a4j: ajax?
Aquí hay más información sobre las diferencias entre f: ajax y a4j: ajax: http://mkblog.exadel.com/2010/08/what-richfaces-a4jajax-adds-on-top-jsf-2-fajax-tag/
La <a4j:ajax>
es simplemente la forma más conveniente de la etiqueta básica <f:ajax>
. Puede encontrar una buena descripción general de todas las diferencias en esta página .
El atributo execute
admite un valor @region
adicional que apunta a <a4j:region>
. Cualquier EL en los atributos de execute
y render
se resuelve en la solicitud actual en lugar de en la solicitud inicial.
La función JS del atributo onevent
de ambas etiquetas se invocará 3 veces (el data.status
tiene entonces los valores begin
, complete
, success
). Esto te obliga a utilizar un switch
o if
solo estás interesado en uno de ellos o quieres tratarlos de manera diferente. El <a4j:ajax>
hace más conveniente con el onbegin
, el onbeforedomupdate
y los atributos oncomplete
respectivamente. Ver también esta pregunta relacionada: JSF 2: ¿Cómo se muestra el estado de Ajax diferente en la misma entrada?
Si no estás interesado en ninguna de esas mejoras, usar <f:ajax>
debería estar perfectamente bien. La diferencia de rendimiento es (y debe ser) totalmente insignificante y no debe ser la razón para elegir una sobre la otra.