Javascript 有没有办法将我的JS函数排入JSF事件队列?

Javascript 有没有办法将我的JS函数排入JSF事件队列?,javascript,ajax,jsf,Javascript,Ajax,Jsf,默认情况下,JSF ajax(JS)事件排队,以便按顺序执行。有没有一种方法可以连接到该框架中 我想做的是让我的JS事件也使用这个队列。是我可以使用的全局变量吗?没有,但是您可以通过和JSF.ajax.addOnEvent在JSF ajax请求上钩住事件侦听器。然后,您可以在发送ajax请求之前、到达ajax响应之后和/或更新htmldom之后执行一些JS代码。根据具体的功能需求,这可能是您实际需要的 以下是此类事件侦听器函数的外观: function someAjaxEventListener

默认情况下,JSF ajax(JS)事件排队,以便按顺序执行。有没有一种方法可以连接到该框架中


我想做的是让我的JS事件也使用这个队列。是我可以使用的全局变量吗?

没有,但是您可以通过
JSF.ajax.addOnEvent
在JSF ajax请求上钩住事件侦听器。然后,您可以在发送ajax请求之前、到达ajax响应之后和/或更新htmldom之后执行一些JS代码。根据具体的功能需求,这可能是您实际需要的

以下是此类事件侦听器函数的外观:

function someAjaxEventListener(data) {
    var status = data.status;

    switch(status) {
        case "begin":
            // This is invoked right before ajax request is sent.
            break;

        case "complete":
            // This is invoked right after ajax response is arrived.
            break;

        case "success":
            // This is invoked right after HTML DOM is updated.
            break;
    }
}
以下是您如何在每个基础上注册它:

<f:ajax ... onevent="someAjaxEventListener" />

下面是如何在视图范围内注册它(因此,挂接每个
):

jsf.ajax.addOnEvent(someAjaxEventListener);

(最好把它放在一些JS文件中,由
加载)

谢谢你的回复。这些链接也有帮助:,,实际上,尽管设计非常糟糕,但您可以获得
队列
对象并将您的请求排队。顺便说一句,多部分表单的排队机制被破坏了。如果它对一个请求进行排队,则不会处理进一步的请求。我提出了相关的bug:JAVASERVERFACES-3106
<h:outputScript>jsf.ajax.addOnEvent(someAjaxEventListener);</h:outputScript>