繁体   English   中英

每个Ajax调用的Javascript(之前和之后)

[英]Javascript on (before and after) every Ajax-call

由于我正在使用TinyMCE (请不要进入“Primefaces有一个编辑器”或类似的东西)我需要在每个Ajax -call之前和之后执行一小段Javascript 我不想编辑每个Ajax -call,因为有很多(这样做对于任何未来的维护都是不好的做法)。

什么是在页面上任何Ajax -call之前和之后执行Javascript的最优雅的解决方案?

注意:我正在为TinyMCE -textarea使用自定义composite 任何事件也都是这个对象也足够了。 虽然请记住,实际的Ajax -trigger可能会被一个完全不同的对象调用(尽管可能会重新渲染composite )。

使用jsf.ajax.addOnEvent处理程序。

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

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

        case "success":
            // This is invoked right after successful processing of ajax response and update of HTML DOM.
            // In case you're interested in error handling, use jsf.ajax.addOnError handler.
            break;
    }
});

只需将它放在一个JS文件中,该文件由<h:outputScript target="head"> <h:body>包含在所需页面的<h:body>中。 这将确保它 JSF自己的包含jsf名称空间的jsf.js 之后加载。

有一个onevent JSF的属性<f:ajax>标签,这是用于在JSF应用程序中执行AJAX任务。 基本上它指定了一个名为tripice的JavaScript函数:在发送AJAX调用之前,收到AJAX响应之后以及更新HTML DOM之后。 正是出于这个目的,PrimeFaces已经将这些回调分别分为onstartonsuccessoncompleteonerror

不重复,您可以在表单reRender之后如何重新执行javascript函数的答案中找到用法示例

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM