公开/公告号CN102508667A
专利类型发明专利
公开/公告日2012-06-20
原文格式PDF
申请/专利权人 迈普通信技术股份有限公司;
申请/专利号CN201110357777.X
发明设计人 邓鹏;
申请日2011-11-11
分类号G06F9/44;
代理机构北京德琦知识产权代理有限公司;
代理人谢安昆
地址 610041 四川省成都市高新区九兴大道16号迈普大厦
入库时间 2023-12-18 05:34:25
法律状态公告日
法律状态信息
法律状态
2014-06-18
授权
授权
2012-07-18
实质审查的生效 IPC(主分类):G06F9/44 申请日:20111111
实质审查的生效
2012-06-20
公开
公开
技术领域
本发明涉及计算机领域,特别涉及一种使用第三方的JavaScript库的方 法和装置。
背景技术
随着信息技术的发展,计算机应用越来越广泛,各种应用系统相继而生, BS的WEB应用项目也越来越多,并且在用户交互的界面开发上变得越来越 广泛和重要。
BS结构的WEB应用在界面上主要通过JavaScript来控制HTML标签, 在JavaScript的使用方面也从原来简单的使用到复杂的使用,主要体现在界 面的美观控制、界面的交付过程,特别是在JavaScript的AJAX技术发展下, JavaScript技术更是必不可少的。
目前BS项目中,基本上没有不使用JavaScript技术来开发,相关的 JavaScript的三方库也越来越多,在网上搜寻可以发现:ExtJS、GoogleMap 等都采用了丰富的JavaScript。
在具体的应用项目开发过程中,作为BS的WEB应用,那就需要采用大 量的JavaScript来开发项目,也会使用大量的JavaScript三方库。但是,针对 三方的JavaScript库,提供的功能比较固定,在某些方面不是很适合具体的 应用项目,总是在现有的三方库功能上缺少部分我们需要的功能。
针对上面的情况,一般的处理方式是修改三方库来完成,这样带来了三 方库的维护和开发的复杂性,并且需要三方库的源代码。
发明内容
有鉴于此,本发明提供一种使用第三方的JavaScript库的方法和装置。 能够在不修改第三方的JavaScript库的源代码的基础上使用第三方的 JavaScript库,降低维护和开发的复杂性。
为解决上述技术问题,本发明的技术方案是这样实现的:
一种使用第三方的JavaScript库的方法,所述方法包括:
生成缓存对象,遍历任一源类中的属性和方法,并将所述源类中的属性 和方法缓存到所述缓存对象中;
生成与源类相同的目标类,并将所述缓存对象中待拦截的方法重新实现 逻辑并缓存到所述目标类中;
将所述缓存对象中其他的方法和属性缓存到所述目标类中。
一种使用第三方的JavaScript库的装置,所述装置包括:生成单元、获 取单元、逻辑单元和复制单元;
所述生成单元,用于生成缓存对象;生成与源类相同的目标类;
所述获取单元,用于遍历任一源类中的属性和方法,并将所述源类中的 属性和方法缓存到所述生成单元生成的缓存对象中;
所述逻辑单元,用于将所述缓存对象中待拦截的方法重新实现逻辑并缓 存到所述生成单元生成的目标类中;
所述复制单元,用于将所述缓存对象中其他的方法和属性缓存到所述生 成单元生成的目标类中。
综上所述,本发明通过对待拦截的方法即需要修改才能实现需要的方法 增加处理逻辑,来达到需要的逻辑实现。能够在不修改第三方的JavaScript 库的源代码的基础上使用第三方的JavaScript库,降低维护和开发的复杂性。
附图说明
图1为本发明实施例中使用第三方的JavaScript库的方法流程示意图;
图2为本发明具体实施例中使用第三方的JavaScript库的装置的结构示 意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举 实施例,对本发明所述方案作进一步地详细说明。
本发明在使用第三方的JavaScript库时,通过对待拦截的方法增加逻辑 来使用第三方的JavaScript库。
参见图1,图1为本发明实施例中使用第三方的JavaScript库的方法流程 示意图。具体步骤为:
步骤101,生成缓存对象,遍历任一源类中的属性和方法,并将源类中 的属性和方法缓存到缓存对象中。
第三方的JavaScript库中至少存在一个类,本发明对任一类的处理过程 均一致。本步骤中生成一个缓存对象,用于缓存任一类中所有方法和属性。
步骤102,生成与源类相同的目标类,并将缓存对象中待拦截的方法重 新实现逻辑并缓存到目标类中。
本步骤中将不能直接用的方法进行拦截,这里待拦截方法即不能直接使 用但是需要修改之后可使用的方法。这里的重新实现逻辑并不是修改源代码, 而是在原先逻辑上增加新的逻辑来重新实现原方法的逻辑。
步骤103,将缓存对象中其他的方法和属性缓存到目标类中。
本步骤中对一些可以直接用的方法,即不进行拦截的方法,在创建目标 类的时候可能丢失,因此需要将其他的即其他的方法和属性缓存到目标类中。
步骤102中,将目标类中待拦截的方法重新实现逻辑的方法为:
调用缓存对象中的待拦截的方法,为待拦截的方法增加处理逻辑,并缓 存到所述目标类中。
其中,为待拦截的方法增加处理逻辑的方法为:
调用并执行缓存对象中待拦截方法,缓存执行的结果;
在待拦截方法前、后,或,前和后增加拦截逻辑并执行,缓存执行的结 果。
在增加的逻辑中可以修改原有方法的参数和返回值,也能够修改原有方 法所在对象的成员变量。
调用缓存对象中待拦截方法通过call或apply方式调用。
步骤103中,将缓存对象中其他的方法和属性缓存到目标类中的方法为:
若目标类中其他的方法和属性丢失,则将缓存对象中其他的方法缓存到 目标类中;若目标类中其他的方法和属性存在未丢失的,则将缓存对象中其 他的方法覆盖目标类中其他的方法。
基于上述同样的发明构思,本发明还提出一种使用第三方的JavaScript 库的装置。该装置用于能够执行JavaScript的计算机上。参见图2,图2为本 发明具体实施例中使用第三方的JavaScript库的装置的结构示意图。该装置 包括:生成单元201、获取单元202、逻辑单元203和复制单元204。
生成单元201,用于生成缓存对象;生成与源类相同的目标类。
获取单元202,用于遍历任一源类中的属性和方法,并将源类中的属性 和方法缓存到生成单元201生成的缓存对象中。
逻辑单元203,用于将缓存对象中待拦截的方法重新实现逻辑并缓存到 生成单元201生成的目标类中。
复制单元204,用于将缓存对象中其他的方法和属性缓存到生成单元204 生成的目标类中。
较佳地,
逻辑单元203,用于调用缓存对象中的待拦截的方法,为待拦截的方法 增加处理逻辑,并缓存到目标类中。
较佳地,
逻辑单元203,用于调用缓存对象中待拦截方法执行,并缓存执行的结 果;在待拦截方法前、后,或,前和后增加拦截逻辑并执行,缓存执行的结 果。
较佳地,
逻辑单元203,用于通过call或apply方式调用缓存对象中待拦截方法。
较佳地,
复制单元204,用于若目标类中其他的方法和属性丢失,则将缓存对象 中其他的方法缓存到目标类中;若目标类中其他的方法和属性存在未丢失的, 则将缓存对象中其他的方法覆盖所述目标类中其他的方法。
上述实施例的单元可以集成于一体,也可以分离部署;可以合并为一个 单元,也可以进一步拆分成多个子单元。
综上所述,本发明通过对待拦截的方法即需要修改才能实现需要的方法 增加处理逻辑,来达到需要的逻辑实现。能够在不修改第三方的JavaScript 库的源代码的基础上使用第三方的JavaScript库,降低维护和开发的复杂性。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护 范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等, 均应包含在本发明的保护范围之内。
机译: 资源例如数据库,用于在计算机网络上使用的使用授权过程,涉及验证第三方在尝试第三方访问资源期间选择的访问参考
机译: 通过访问一个或多个AD数据库(包括使用AD服务标签的第三方AD数据库)为设备提供广告服务的系统和方法
机译: 通过访问一个或多个AD数据库(包括使用AD服务标签的第三方AD数据库)为设备提供广告服务的系统和方法