javascript - *在* ajax更新后执行Javascript

标签 javascript ajax jsf jsf-2

我需要在应用 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/

相关文章:

php - 获取JSON : NetworkError: 500 Internal Server Error

javascript - Webworker回调后返回结果

javascript - 与 Phaser Arcade 物理引擎的碰撞

javascript - MVC 5 客户端对 ajax 帖子的验证与点击事件不起作用?

javascript - 定位多个具有相同 ID 且包含方括号的空输入字段

java - 将 HTTP header 添加到 RenderResponse

javascript - Jquery 文件上传在 IE 中不起作用

javascript - jquery $.get() 不使用 https

jsf - <f :selectItems> JSF tag custom tooltip attribute

jsf - 无法以编程方式设置 DataTable 的初始排序顺序