【问题标题】:Is there a way to queue my JS functions to the JSF event queue?有没有办法将我的 JS 函数排队到 JSF 事件队列中?
【发布时间】:2013-12-10 04:41:15
【问题描述】:

默认情况下,JSF ajax(JS) 事件会排队,以便按顺序执行。有没有办法连接到那个框架?

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

【问题讨论】:

    标签: javascript ajax jsf


    【解决方案1】:

    没有,但您可以通过<f:ajax onevent>jsf.ajax.addOnEvent 在JSF ajax 请求上挂钩事件侦听器。然后,您可以在发送 ajax 请求之前,或在 ajax 响应到达之后,和/或在更新 HTML DOM 之后执行一些 JS 代码。根据具体的功能要求,这可能是实际上您正在寻找的。​​p>

    下面是这样一个事件监听器函数的样子:

    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> 基础上注册它:

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

    以下是在视图范围内注册它的方法(因此,挂钩每个&lt;f:ajax&gt;):

    <h:outputScript>jsf.ajax.addOnEvent(someAjaxEventListener);</h:outputScript>
    

    (最好放在&lt;h:outputScript name&gt;加载的某个JS文件中)

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-26
    • 2012-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-07
    相关资源
    最近更新 更多