[发明专利]Javascript中调用二进制组件的方法有效
申请号: | 201310367174.7 | 申请日: | 2013-08-21 |
公开(公告)号: | CN104423932B | 公开(公告)日: | 2018-03-16 |
发明(设计)人: | 贾靖;陈冬晓;宋宇培 | 申请(专利权)人: | 上海科泰世纪科技有限公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 201203 上海市张江高*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | javascript 调用 二进制 组件 方法 | ||
技术领域
本发明涉及Javascript中调用自定义组件的技术,尤其涉及一种Javascript中调用二进制组件的方法。
背景技术
目前,使用浏览器作为本地应用的平台已经有了广泛的实际应用,HTML/CSS处理页面显示和美化,Javascript脚本处理页面逻辑。但是,Javascript作为脚本语言存在一定的先天局限性,出于安全性方面的考量,Javascript脚本不具备访问本地资源的能力,对于网络访问也受到同源策略(Same Origin Policy)的严格限制,所以,基于浏览器的应用在获取外部资源和外部程序的支持时,需要对浏览器进行额外的扩展,目前多数浏览器通过本地插件式扩展机制以扩展Javascript脚本的功能。
实现Javascript脚本调用组件的可行策略是,在Javascript引擎初始化时,增加一个组件的注册表,将组件的所有信息全部注册到Javascript运行环境的全局变量中。但是,将组件所有信息在Javascript初始化时全部注册的话,导致Javascript引擎初始化过程耗时且内存占用量过大。
发明内容
鉴于上述内容,有必要提出一种Javascript中调用二进制组件的方法,该方法可以实现在Javascript脚本运行时灵活调用二进制组件以扩展Javascript脚本的功能。
所述Javascript中调用二进制组件的方法,包括步骤:Javascript引擎获取Javascript语句中的字符串并判定是否为Javascript语言节点;若不是Javascript语言节点,Javascript引擎的异常拦截器拦截并获取该字符串;从二进制组件的加载路径中查询是否存在该字符串对应的二进制组件;创建该字符串对应的二进制组件对象并封装为Javascript对象。
相比于现有技术,本发明所述Javascript中调用二进制组件的方法,通过修改Javascript引擎的异常处理机制的方式,使得在Javascript脚本运行时活加载二进制组件。另外,当调用的二进制组件为支持同步和异步回调的CAR组件,在Javascript脚本中调用该CAR组件对象的方法而触发回调事件时,能够同步或是异步回调该回调事件的回调函数。
附图说明
图1是通过修改Javascript引擎的异常处理机制实现Javascript中调用CAR组件的方法流程图。
图2是一个CAR组件示例FooBar组件的的程序代码。
图3是触发回调事件执行异步回调的示意图。
具体实施方式
本较佳实施例中以CAR组件作为二进制组件的示例进行说明,本领域的技术人员可以将该方法应用到其他二进制组件中,以实现在Javascript中调用二进制组件。
所述CAR组件(Component Assembly Runtime)是上海科泰世纪科技有限公司开发的一种二进制组件,该CAR组件技术是在Elastos平台上(Elastos,一种组件化操作系统)面向组件的编程模型,规定了组件之间相互调用的标准,并且二进制组件能够自我描述。
所述CAR组件采用C++编写,携带有元数据(metadata),通过该元数据CAR组件可以实现反射机制。该元数据是描述数据的数据,对数据的抽象,主要包括了数据的类型信息,例如CAR组件的模块信息、接口信息、类信息等数据,且元数据与CAR组件的可执行代码存储在一起,是CAR组件的二进制描述。
所述CAR组件的反射机制,提供统一调用CAR组件内封装的所有接口的Invoke方法,形如:Invoke(object_name,method_name,parameters)以实现对CAR组件的统一封装。例如,在Javascript或是C语言的环境中调用某一CAR组件对象foo的方法Bar(例如:foo.Bar()),则在执行时通过反射机制调用Invoke方法(例如:Invoke(foo,Bar,Null),实现了对CAR组件对象所有方法具体调用的封装。
以上是对CAR组件的简单描述,关于CAR组件的详细内容可参考CAR组件的使用说明手册等。
参阅图1所示,是通过修改Javascript引擎的异常处理机制实现Javascript中调用CAR组件的方法流程图。
步骤S01,Javascript引擎获取Javascript语句中的字符串。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海科泰世纪科技有限公司,未经上海科泰世纪科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310367174.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种生成测试脚本的方法及系统
- 下一篇:一种分支预测方法及相关装置