我需要在应用 ajax 更新后执行某个 javascript 函数。我试过 jsf.ajax.addOnEvent(ch.ergon.newom.ajaxUpdate)
到
得到有关请求的通知,但这似乎是在 ajax 响应到达之后执行的,但是在应用它之前执行(即:内容已更新)。
如何在 JSF-ajax 更新内容后执行 JavaScript 函数?
最佳答案
实际上,这将被调用三次。一个在发送 ajax 请求之前,一个在 ajax 响应到达之后,一个在成功处理 ajax 响应时。您需要根据提供的数据参数检查当前状态。您可以在 JSF 2.0 specification 的表 14-4 和 14-3 中找到技术细节。 .
这是一个启动示例,说明当您想 Hook 所有 3 种状态时,您的 JS 函数应该是什么样子。
function ajaxUpdate(data) {
var ajaxStatus = data.status; // Can be 'begin', 'complete' and 'success'.
switch (ajaxStatus) {
case 'begin': // This is called right before ajax request is been sent.
// ...
break;
case 'complete': // This is called right after ajax response is received.
// ...
break;
case 'success': // This is called when ajax response is successfully processed.
// ...
break;
}
}
或者当你只想 Hook success
状态时:
function ajaxUpdate(data) {
if (data.status == 'success') {
// ...
}
}
关于javascript - *在* ajax更新后执行Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7566059/