`

jQuery AOP例子

 
阅读更多
JavaScript 基于对象事件的 AOP 实现 http://www.ibm.com/developerworks/cn/web/1212_lincy_jsaop/
简洁优雅的JS AOP实现 http://www.iteye.com/topic/68344
jQuery Aop 简明教程 http://gty509.iteye.com/blog/379734
在jQuery中添加AOP的功能,可以使用jquery plugin.http://code.google.com/p/jquery-aop/。使用非常简单,包含.js文件,然后调用添加通知的函数。
一共有四种通知:前置通知,后置通知,环绕通知和引入。

前置通知:before (Map pointcut, Function advice) return Array<Function>
在指定织入点创建一个前置通知。通知在被织入的方法之前执行,不能改变原方法的行为或阻止它执行。

参数:
pointcut: 织入点对象
target:被织入的对象
method:被织入的方法名字
advice: 通知函数


例: 
jQuery.aop.before( {target: window, method: 'MyGlobalMethod'},   
  function() {   
    alert('About to execute MyGlobalMethod');   
  }  
);  
  
jQuery.aop.before( {target: window, method: /My/},   
  function() {   
    alert('About to execute one of my global methods');   
  }  
);  
  
jQuery.aop.before( {target: String, method: 'indexOf'},   
  function(index) {   
    alert('About to execute String.indexOf on: ' + this);   
  }  
); 


   
后置通知:after (Map pointcut, Function advice) return Array<Function>
通知(advice)在定义的切入点后面执行(pointcut),并接收切入点方法运行后的返回值作为参数


参数:
pointcut: 织入点对象
target:被织入的对象
method:被织入的方法名字。
advice: 通知函数,并接受切入点方法执行后的返回值作为参数


例: 
jQuery.aop.after( {target: window, method: 'MyGlobalMethod'},   
  function(result) {   
    alert('Returned: ' + result);   
  }   
);  
  
jQuery.aop.after( {target: String, method: 'indexOf'},   
  function(index) {   
    alert('Result found at: ' + index + ' on:' + this);   
  }  
);  





环绕通知:around (Map pointcut, Function advice) return Array<Function>
在指定切入点处创建一个环绕通知,此类型的同志通过调用innovation.proceed()能够控制切入点方法的执行,也能在函数执行前更改它的参数。

参数:
pointcut: 织入点对象
target:被织入的对象
method:被织入的方法名字。
advice: 通知函数,有一个参数innovation。包含.proceed()方法和两个属性:.argurments及.method


例: 
jQuery.aop.around( {target: window, method: 'MyGlobalMethod'},   
  function(invocation) {  
    alert('# of Arguments: ' + invocation.arguments.length);   
    return invocation.proceed();   
  }  
);  
  
jQuery.aop.around( {target: String, method: 'indexOf'},   
  function(invocation) {   
    alert('Searching: ' + invocation.arguments[0] + ' on: ' + this);   
    return invocation.proceed();   
  }  
);  
  
jQuery.aop.around( {target: window, method: /Get(\d+)/},   
  function(invocation) {  
    alert('Executing method ' + invocation.method);   
    return invocation.proceed();   
  }  
); 




引入:introduction (Map pointcut, Function advice) return Array<Function>
此类型的通知的方法(advice)将替代制定切入点的方法。要恢复原方法,唯有卸载通知。
参数:
pointcut: 织入点对象
target:被织入的对象
method:被织入的方法名字。
advice: 通知函数。


例: 
jQuery.aop.introduction( {target: String, method: 'log'},   
  function() {   
    alert('Console: ' + this);  
  }  
);
 
分享到:
评论

相关推荐

    struts2+spring4+mybatis3,登录jquery ajax,struts拦截器,springAOP的例子

    本项目示例涵盖了这些框架的整合使用,以及jQuery AJAX登录、Struts拦截器和Spring AOP(面向切面编程)的应用。 1. **Struts2**:Struts2是一个基于MVC(Model-View-Controller)设计模式的Web应用框架,它简化了...

    简单的SSH+JQuery+JSON例子

    这样一个例子展示了如何利用SSH处理后台业务逻辑,使用JQuery进行前端交互,并通过JSON进行数据交换,形成一个完整的Web应用程序流程。理解并熟练掌握这些技术对于Java Web开发者来说至关重要。

    jquery easy ui+ssh 增删改查例子

    在IT行业中,jQuery EasyUI和SSH(Struts2、...这个例子项目为初学者提供了实际操作的机会,通过它,你可以学习如何将jQuery EasyUI的前端组件与SSH的后端框架相结合,实现完整的CRUD功能,进一步提升Web开发技能。

    spring框架项目+jQueryAjax提交实例。jquery-3.3.1.min.js

    这个项目作为一个学习和实践的例子,对于理解和掌握Spring MVC与jQuery AJAX的结合使用非常有帮助。用户只需将其导入MyEclipse这样的IDE,配置Tomcat服务器,然后运行,就可以看到AJAX请求和响应的实际效果。这为...

    SSH+jquery oracle增删改查以及分页

    1. **Spring框架**:Spring是Java企业级应用的核心框架,提供了依赖注入(DI)和面向切面编程(AOP)等功能,用于解耦应用组件。在本项目中,Spring作为中央调度器,负责管理Bean的生命周期和事务控制,确保数据操作...

    ssh2(事务,AOP,IoC即DI)+EhCache+oscache+proxool+MySQL+SiteMesh+Gzip例子

    jQuery+json+struts2+spring3(事务,AOP,IoC即DI)+hibernte3+EhCache+oscache+proxool+MySQL+SiteMesh+Gzip lj例子

    Spring+SpringMVC+MyBatis+Maven+Jquery

    在IT行业中,Spring、SpringMVC、MyBatis、Maven和Jquery是构建Web应用程序的常见技术栈。这些框架和工具的结合使用,能够帮助开发者...在SSMTest项目中,你可以找到实际的例子和代码,进一步加深对这些技术的理解。

    JQuery中Ajax的操作完整例子

    而Spring对对象管理进行了封装,并提供了面向切面编程(AOP)的支持。接着提到了Hibernate和IBatis这两种数据库持久层框架,它们将JDBC代码封装起来,减少了重复的代码编写。 接着作者转向前台技术,提到前台页面的...

    jquerygrid+spring+struts+hibernate

    综上所述,这个"jquerygrid+spring+struts+hibernate"项目为开发者提供了一个完整的例子,展示了如何利用这些技术栈开发一个功能丰富的Web应用,其中包括前端的数据展示、后端的服务层处理以及与数据库的交互。...

    java ajax登陆包含spring,jquery

    Spring框架是Java企业级开发中的核心组件,提供了一系列丰富的功能,如依赖注入、AOP(面向切面编程)、MVC(模型-视图-控制器)等。在登录场景中,Spring MVC可以用于构建RESTful API,处理AJAX请求。你可以定义一...

    使用Jquery,Ajax+Struts+Spring+Ibatis写的一个无限级树,供大家参考一下

    在这个例子中,Struts作为控制器层,接收Ajax请求,调用业务逻辑,然后将结果转换为JSON格式返回给前端。Struts的Action类处理请求,通过Spring的依赖注入获取Service层对象,执行查询操作。 Spring框架提供了全面...

    ajax2 可以跑的例子

    2. **Spring框架**:Spring是一个全面的Java企业级应用开发框架,它简化了依赖注入、AOP(面向切面编程)、事务管理等复杂任务。在本例子中,Spring被用来处理后端业务逻辑,提供RESTful API供前端Ajax调用,实现...

    三大框架小例子

    EasyUI是基于jQuery的前端框架,它提供了丰富的UI组件,如表格、树形控件、对话框等,帮助开发者快速构建美观的Web界面。EasyUI与三大框架结合使用,可以轻松实现前后端数据绑定,提高开发效率,同时提供良好的用户...

    一个Spring+hibernate+dwr的例子程序

    它强调依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented Programming,AOP),简化了Java应用的开发和测试。在这个例子中,Spring可能用于管理bean的生命周期,提供事务管理,以及与Hibernate...

    ssm+druid连接池+easyui+ztree的小例子

    首先,Spring是核心的依赖注入(DI)和面向切面编程(AOP)框架,它允许开发者管理对象的生命周期和依赖关系。在SSM中,Spring作为基础,负责控制反转和事务管理,同时提供了与其它框架的集成接口。 SpringMVC是...

    jbpm4+ssh集成的例子

    `leave.jpdl.xml`文件就是这样一个例子,它定义了一个请假流程,包括各个步骤、转移条件和参与者等。通过SSH框架,这些流程定义可以在运行时动态加载和执行。 2. **Spring集成**:Spring作为核心容器,可以管理jbPM...

    Spring+MVC+AngularJS例子

    Spring框架是一个开源的应用框架,主要用于Java平台,它提供了全面的依赖注入(DI)和面向切面编程(AOP)解决方案,以及用于处理企业级应用的各种工具和模块。在本项目中,Spring作为后端的核心框架,负责业务逻辑...

    javaweb程序例子

    Spring框架是Java Web开发中的核心组件,它提供了依赖注入(DI)和面向切面编程(AOP)等功能,简化了应用的配置和管理。Spring MVC是Spring框架的一部分,用于构建Web应用程序,它提供了一种模型-视图-控制器(MVC...

    模仿 google 自动显示 输入框 例子

    在IT行业中,模仿Google自动显示输入框的例子是一个常见的前端开发任务,主要目的是为用户提供智能搜索体验,即用户在输入查询时,系统会根据已输入的部分关键词动态显示相关的搜索建议。这个功能常见于许多搜索引擎...

Global site tag (gtag.js) - Google Analytics