一种资源加载方法及装置制造方法及图纸

技术编号:19023366 阅读:26 留言:0更新日期:2018-09-26 19:03
本申请公开了一种资源加载方法及装置,应用于计算机技术领域。本申请中,第一线程向第二线程发送资源加载请求,其中,所述第一线程和所述第二线程位于同一进程,所述第一线程运行于动态语言应用运行平台;所述第一线程接收所述第二线程根据所述资源加载请求返回的指示;所述第一线程根据所述指示,基于所述进程预加载的资源,对所述资源加载请求所请求加载的资源进行加载,其中,所述进程预加载的模块中包括Web引擎。采用本申请可实现Web引擎与Node.js的融合。

【技术实现步骤摘要】
一种资源加载方法及装置
本申请涉及计算机
,尤其涉及一种资源加载方法及装置。
技术介绍
随着移动互联网的快速发展与HTML5(HTML是HyperTextMarkupLanguage的英文缩写,即超文本标记语言)技术的逐步成熟,万维网(Web)应用已经成为移动端跨平台应用开发的热门解决方案。Web应用通过浏览器获取和显示Web资源,以页面形式显示Web资源。浏览器的功能可通过Web引擎实现。Web引擎包含了各种组件,比如用于实现页面渲染的渲染引擎、用于进行管理和控制的浏览器引擎等。Node.js是JavaScript运行环境(runtime),也称运行平台,提供了多种系统级的应用程序编程接口(ApplicationProgrammingInterface,API),用于方便地搭建响应速度快、易于扩展的网络应用。
技术实现思路
本申请实施例提供一种资源加载方法及装置。本申请实施例提供了一种资源加载方法,包括:第一线程向第二线程发送资源加载请求;其中,所述第一线程和所述第二线程位于同一进程,所述第一线程运行于动态语言应用运行平台;所述第一线程接收所述第二线程根据所述资源加载请求返回的指示;所述第一线程根据所述指示,基于所述进程预加载的资源,对所述资源加载请求所请求加载的资源进行加载,其中,所述进程预加载的资源中包括Web引擎。本申请实施例提供的一种资源加载装置,包括:第一线程单元和第二线程单元;所述第一线程单元,用于:向所述第二线程单元发送资源加载请求;其中,所述第一线程单元和所述第二线程单元属于同一进程单元,所述第一线程单元运行于动态语言应用运行平台;接收所述第二线程单元根据所述资源加载请求返回的指示;以及,根据所述指示,基于所述进程单元预加载的资源,对所述资源加载请求所请求加载的资源进行加载;其中,所述进程单元预加载的模块中包括Web引擎。本申请实施例提供的一个或多个计算机可读介质,所述可读介质上存储有指令,所述指令被一个或多个处理器执行时,使得通信设备执行上述方法。本申请实施例提供的一种通信设备,包括:一个或多个处理器;以及,一个或多个计算机可读介质,所述可读介质上存储有指令,所述指令被所述一个或多个处理器执行时,使得所述装置执行上述方法。本申请的上述实施例中,应用程序的进程预加载有资源,其中,所述进程预加载的资源中包括Web引擎。同一进程中的第一线程向第二线程发送资源加载请求,所述第一线程运行于动态语言应用运行平台;所述第一线程接收所述第二线程根据所述资源加载请求返回的指示;所述第一线程根据所述指示,基于所述进程预加载的模块和/或资源,对所述资源加载请求所请求加载的资源进行加载,从而实现了Web引擎与所述动态语言应用运行平台的融合。附图说明本申请的实施例通过示例而非限制的方式示出在所附附图中,类似的附图标记表示类似的元素。图1根据一些实施例示例性地示出了基于Node.js的云操作系统架构100;图2根据一些实施例示例性地示出了预加载有Web引擎的Node.js的示意图;图3根据一些实施例示例性地示出了Web引擎的API映射关系示意图;图4根据一些实施例示例性地示出了预加载Web引擎后Node.js线程和Browser线程及相关资源的示意图;图5a根据一些实施例示例性地示出了预加载流程示意图图5b根据一些实施例示例性地示出了Web资源加载流程示意图;图6根据一些实施例示例性地示出了事件循环机制示意图;图7根据一些实施例示例性地示出了资源加载装置的结构示意图;图8根据一些实施例示例性地示出了一种装置示意图。具体实施方式虽然本申请的概念易于进行各种修改和替代形式,但是其具体实施例已经通过附图中的示例示出并且将在本文中详细描述。然而,应当理解,没有意图将本申请的概念限制为所公开的特定形式,而是相反,意图是覆盖与本申请以及所附权利要求一致的所有修改、等同物和替代物。说明书中对“一个实施例”、“实施例”、“说明性实施例”等的引用,指示所描述的实施例可包括特定特征、结构或特性,但是每个实施例可以或可以不必包括特定特征、结构或特性。此外,这样的短语不一定指的是相同的实施例。进一步地,认为在本领域技术人员的知识范围内,当结合实施例描述特定特征、结构或特性时,结合无论是否明确描述的其它实施例影响这样的特征,结构或特性。另外,应当理解,以“A,B和C中的至少一个”的形式包括在列表中的项目可以表示(A);(B);(C);(A和B);(A和C);(B和C);或(A,B和C)。类似地,以“A,B或C中的至少一个”的形式列出的项目可以表示(A);(B);(C);(A和B);(A和C);(B和C)或(A,B和C)。在一些情况下,所公开的实施例可以在硬件、固件、软件或其任何组合中实现。所公开的实施例还可以被实现为由一个或多个暂时性或非暂时性机器可读(例如,计算机可读)存储介质携带或存储的指令,其可以由一个或多个处理器读取和执行。机器可读存储介质可以体现为用于以机器可读形式(例如,易失性或非易失性存储器、介质盘或其他介质)存储或传输信息的任何存储设备,机制或其他物理结构的设备)。在附图中,一些结构或方法特征可以以特定布置和/或顺序示出。然而,应当理解,可能不需要这样的具体布置和/或排序。相反,在一些实施例中,这些特征可以以与说明性附图中所示不同的方式和/或顺序来布置。另外,在特定图中包括结构或方法特征并不意味着暗示这种特征在所有实施例中都是需要的,并且在一些实施例中可以不包括或可以与其他特征组合。操作系统用于向用户应用提供操作系统的基础能力,可基于动态语言应用运行平台实现,从而为动态语言应用提供运行环境。其中,Node.js即为JavaScript的运行环境或运行平台。其中,动态语言是计算机编程语言中的一个语言类别,是一类在运行时可以动态地改变类型、结构的语言,在运行时函数和属性可以被增加、修改和删除。例如JavaScript、Python、Ruby等都属于动态语言。动态语言不需要编译即可运行,在运行时需要运行环境的支撑,这个环境叫做运行时环境,它包含动态语言运行所需要的所有要素,例如Java虚拟机、JavaScript引擎等。以云操作系统(云OS)中的Host系统为例,它可基于Node.js实现。Node.js是JavaScript的运行环境,是建立在Chrome上的JavaScript引擎的Web应用程序框架,也就是说,操作系统基于Node.js向用户应用提供操作系统的基础能力。Node.js中包括多种模块,这些模块可通过将用于实现特定功能的代码(比如实现操作系统级服务功能的代码)进行封装得到,比如可封装为组件形式,例如这些模块中可包括实现全球定位系统(GlobalPositioningSystem,简称GPS)定位功能的组件、实现电源管理功能的组件等。这些模块的接口被暴露给应用层,应用层中的应用程序(比如Web应用)可通过调用这些模块的接口,通过JavaScript引擎解析模块中的代码,执行这些模块提供的方法,从而实现这些模块提供的功能。对于Web应用来说,Web资源的加载(比如Web页面的获取、渲染等操作)由浏览器实现,浏览器则基于Web引擎(webengine)实现Web资源加载。目前,传统的HTML5浏览本文档来自技高网...

【技术保护点】
1.一种资源加载方法,其特征在于,包括:第一线程向第二线程发送资源加载请求;其中,所述第一线程和所述第二线程位于同一进程,所述第一线程运行于动态语言应用运行平台;所述第一线程接收所述第二线程根据所述资源加载请求返回的指示;所述第一线程根据所述指示,基于所述进程预加载的资源,对所述资源加载请求所请求加载的资源进行加载,其中,所述进程预加载的资源中包括Web引擎。

【技术特征摘要】
1.一种资源加载方法,其特征在于,包括:第一线程向第二线程发送资源加载请求;其中,所述第一线程和所述第二线程位于同一进程,所述第一线程运行于动态语言应用运行平台;所述第一线程接收所述第二线程根据所述资源加载请求返回的指示;所述第一线程根据所述指示,基于所述进程预加载的资源,对所述资源加载请求所请求加载的资源进行加载,其中,所述进程预加载的资源中包括Web引擎。2.如权利要求1所述的方法,其特征在于,所述进程对应的事件队列中包括所述Web引擎对应的子队列,所述子队列中包括Web事件请求;所述第一线程向所述第二线程发送资源加载请求,包括:所述第一线程从所述事件队列中获取待处理的事件请求;若获取到所述子队列,则按照时间先后顺序获取所述子队列中的Web事件请求,并在获取到Web事件请求后向所述第二线程发送资源加载请求。3.如权利要求2所述的方法,其特征在于,所述进程对应的事件队列中还包括动态语言应用运行平台事件请求;所述方法还包括:所述子队列中的Web事件请求处理完成后,返回到所述事件队列,并获取待处理的动态语言应用运行平台事件请求;或者,所述子队列中的设定数量的Web事件请求处理完成后,返回到所述事件队列,并获取待处理的动态语言应用运行平台事件请求。4.如权利要求1所述的方法,其特征在于,还包括:所述进程启动时进行资源的预加载,所预加载的资源中包括所述Web引擎,以及包括动态语言应用运行平台所提供的模块、操作系统提供的模块、自定义的模块中的一种或多种组合;其中,所述模块通过对实现特定功能的代码进行封装得到。5.如权利要求1所述的方法,其特征在于,所述对所述资源加载请求所请求加载的资源进行加载,包括:根据所述Web引擎提供的接口调用相应的模块,被调用的模块用于加载所请求加载的资源;通过所述进程预加载的动态语言引擎对该模块进行解析,得到该模块所调用的操作系统中的模块接口;根据解析得到的模块接口调用操作系统中的相应模块。6.如权利要求1至5任一项所述的方法,其特征在于,所述第一线程向第二线程发送资源加载请求,包括:所述第一线程根据web页面访问请求,向第二线程发送资源加载请求,所述资源加载请求用于请求加载所请求的web页面的资源。7.如权利要求1至5中任一项所述的方法,其特征在于,所述第一线程为所在进程中的主线程,所述第二线程为所在进程中的子线程。8.如权利要求1至5中任一项所述的方法,其特征在于,所述动态语言应用运行平台为Node.js,所述第一线程为Node.js线程,所述第二线程为浏览器线程。9.一种资源加载装置,其特征在于,包括:第一线程单元和第二线程单元;所述第一线程单元,用于:向所述第二线程单元发送资源加载请求;其中,所述第一线程单元和所述第二线程单元属于同一进程单元,所述第一线程单元运行于动态语言应用运行平台;接收所...

【专利技术属性】
技术研发人员:闵洪波朱永盛鲁振华林志平蔡艳明曾旭
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1