CN114398099A - 程序资源加载方法、装置、设备及存储介质 - Google Patents
程序资源加载方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114398099A CN114398099A CN202210002139.4A CN202210002139A CN114398099A CN 114398099 A CN114398099 A CN 114398099A CN 202210002139 A CN202210002139 A CN 202210002139A CN 114398099 A CN114398099 A CN 114398099A
- Authority
- CN
- China
- Prior art keywords
- resource
- program
- library file
- address
- loading
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000011068 loading method Methods 0.000 title claims abstract description 64
- 238000000034 method Methods 0.000 claims description 38
- 230000006870 function Effects 0.000 claims description 36
- 238000004590 computer program Methods 0.000 claims description 16
- 230000004044 response Effects 0.000 claims description 3
- 238000009877 rendering Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 230000009471 action Effects 0.000 description 7
- 239000000969 carrier Substances 0.000 description 6
- 239000003795 chemical substances by application Substances 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 238000002347 injection Methods 0.000 description 4
- 239000007924 injection Substances 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000000243 solution Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本公开实施例提供一种程序资源加载方法、装置、设备及存储介质。前述程序资源加载方法包括:从Web页面源代码中获取第一库文件的链接地址;基于所述链接地址获取第一库文件,并基于所述第一库文件确定所述资源地址,所述第一库文件中存储有目标代码,所述目标代码用于确定实现所述Web页面功能所需的程序资源的资源地址;基于所述资源地址加载所述程序资源。采用本公开实施例的方案,无需在Web页面源代码中写入过多的冗余目标代码,实现了Web页面源代码的简洁。
Description
技术领域
本公开实施例涉及Web应用领域,尤其涉及一种程序资源加载方法、装置、设备及存储介质。
背景技术
为实现Web页面功能,载体在打开Web页面时需要加载支持Web页面功能的程序资源(程序资源可以是软件开发工具包(Software Development Kit,SDK))。不同载体采用的编码技术不同,在不同载体上打开同一Web页面时,需要加载的程序资源也不相同。
相关技术中,为了使打开Web页面的载体能够加载与其匹配的程序资源,需要在Web页面源代码文件中写入判断代码,以通过判断代码判定载体实现Web页面功能所需的程序资源的资源地址。由于可能打开Web页面的载体类型众多,使得在Web页面源代码中写入的前述判断代码冗长并且容易引入Bug。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本公开实施例提供了一种程序资源加载方法、装置、设备及存储介质。
第一方面,本公开实施例提供一种程序资源加载方法,包括:
从Web页面源代码中获取第一库文件的链接地址;
基于所述链接地址获取第一库文件,并基于所述第一库文件确定所述资源地址,所述第一库文件中存储有目标代码,所述目标代码用于确定实现所述Web页面功能所需的程序资源的资源地址;
基于所述资源地址加载所述程序资源。
可选地,在所述基于所述第一库文件确定所述资源地址之前,所述方法还包括:获取载体环境;
所述基于所述第一库文件确定所述资源地址,包括:
基于所述第一库文件,根据所述载体环境确定所述资源地址。
可选地,在基于所述第一库文件确定所述资源地址后,所述方法还包括:
将所述资源地址写入到所述Web页面源代码中;
所述基于所述资源地址加载所述程序资源,包括:
基于写入到所述Web页面源代码中的所述资源地址,异步加载所述程序资源。
可选地,所述方法还包括:基于所述第一库文件,根据所述载体环境注册调用所述程序资源的预置接口。
可选地,在所述注册调用所述程序资源的预置接口后,所述方法还包括:
响应于接收到调用所述预置接口的任务请求,判断所述程序资源是否完成加载;
响应于所述程序资源未完成加载,将所述任务请求暂存至任务队列中,以及,在所述程序资源完成加载后执行暂存在所述任务队列中的所述任务请求。
可选地,所述执行暂存在所述任务队列中的所述任务请求,包括:
在所述程序资源完成加载后执行回调函数,采用所述回调函数调用暂存在所述任务队列中的所述任务请求,以及采用所述程序资源执行所述任务请求。
第二方面,本公开实施例提供一种程序资源加载装置,包括:
第一获取单元,用于从Web页面源代码中获取第一库文件的链接地址;
第二获取单元,用于基于所述链接地址获取第一库文件,并基于所述第一库文件确定所述资源地址,所述第一库文件中存储有目标代码,所述目标代码用于确定实现所述Web页面功能所需的程序资源的资源地址;
程序资源加载单元,用于基于所述资源地址加载所述程序资源。
可选地,所述装置还包括:
载体环境获取单元,用于获取载体环境;
所述第二获取单元基于所述第一库文件,根据所述载体环境确定所述资源地址。
第三方面,本公开实施例提供一种电子设备,包括:
存储器和处理器,其中,所述存储器中存储有计算机程序,当所述计算机程序被所述处理器执行时,实现如前所述程序资源加载方法。
第四方面,本公开实施例提供一种计算机可读存储介质,所述存储介质中存储有计算机程序,当所述计算机程序被处理器执行时,实现如前所述的程序资源加载方法。
本公开实施例提供的技术方案与现有技术相比具有如下优点:
采用本公开实施例提供的方案,Web页面开发人员编写Web页面源代码时,只需要将第一库文件的链接地址写入到Web页面源代码中,就可以基于第一库文件的链接地址获取第一库文件,加载其中存储的目标代码,并基于目标代码确定当前载体实现Web页面功能所需的程序资源的资源地址。因为只需要将第一库文件的链接地址写入到Web页面源代码中,不需要将目标代码写入到Web页面源代码中,所以不会使Web页面源代码中写入过多的冗余目标代码,实现了Web页面源代码的简洁。此外由于无需关注第一库文件中的代码内容,通过简单调用第一库文件就可以确定载体实现Web页面功能所需的程序资源的资源地址,减少了编程工作量。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本公开实施例提供的程序资源加载方法流程图;
图2是本公开实施例提供的程序资源加载装置的结构示意图;
图3是本公开实施例提供的一种终端设备的结构示意图。
具体实施方式
为了能够更清楚地理解本公开的上述目的、特征和优点,下面结合附图和实施例对本公开作进一步的详细说明。可以理解的是,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。此处所描述的具体实施例仅仅用于解释本公开,而非对本公开的限定。基于所描述的本公开的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本公开保护的范围。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
本公开实施例提供一种程序资源加载方法,以使得载体加载实现Web页面功能所需的程序资源。
前述载体是能够加载Web页面源代码,进而实现Web页面展示的应用程序。具体实施例中,载体可以是各种类型操作系统中的原生客户端,也可以是诸如微信小程序等无需下载安装就可以使用的应用程序。
前述的程序资源是支持载体实现Web页面功能所需要加载的后台应用程序。程序资源是支持Web页面播放多媒体文件的后台应用程序,支持Web页面实现页面跳转的后台应用程序,也可以是支持Web页面实现页面自动滑动的后台应用程序等。
在对本公开实施例提供的程序资源加载方法做介绍前,首先对现有技术中的程序资源加载方法做介绍,以能够理清楚现有技术的缺点。现有技术为了使得载体在打开Web页面源代码的时候,能够判定需要加载的程序资源,需要在Web页面源代码中写入判断代码。判断代码基于当前载体的载体环境,确定与当前载体匹配的程序资源的地址。
判断代码类似如下:
if(Android App){load sdk1;}
else if(IOS App){load sdk2;}
else if(Wechat){load sdk3;}
else if(MiniProgram){load sdk4;}
……
为了适应各种可能的载体环境,Web页面源代码中需要将各种可能载体环境对应的判断代码写入到Web页面源代码中。Web页面开发人员需要考虑不同载体环境下所需要加载的程序资源的类型,以及需要考虑各种载体环境。在实际代码编写过程中,对判断代码的编写过程枯燥,并且容易引入编程错误(也就是引入Bug)。
为了克服前述直接在Web源代码中写入判断代码可能出现的问题,本公开实施例提供一种新的程序资源载入方法。该方法可以由一种终端设备来执行。该终端设备可以示例性的理解为诸如智能手机、平板电脑、笔记本电脑、台式机、智能电视等能够安装前述载体程序并且能够支持前述载体程序运行的设备。
图1是本公开实施例提供的程序资源加载方法流程图。如图1所示,本公开实施例提供的程序资源加载方法包括步骤S101-S103。
步骤S101:从Web页面源代码中获取第一库文件的链接地址。
本公开实施例中,在当前载体在检测到用户点击Web链接的操作后,基于Web链接加载对应的Web页面源代码。随后,载体的渲染引擎开始基于Web页面源代码渲染Web页面。在渲染引擎基于Web页面源代码渲染Web页面过程中,载体的渲染引擎从Web页面中获取了第一库文件的链接地址。
步骤S102:基于链接地址获取第一库文件,并基于第一库文件确定资源地址。
在获取第一库文件的链接地址后,当前载体基于第一库文件的链接地址获取第一库文件。
第一库文件是专门封装的、用于存储目标代码的库文件。第一库文件可以是存储在远程电子设备中的库文件,也可以是存储在终端设备中的库文件,本公开实施例并不做特别地限定。
第一库文件中存储的目标代码用于确定各种载体(也就是实际打开Web链接的载体)实现Web页面功能所需的程序资源的资源地址的代码。具体实施例中,目标代码可以是源程序代码,也可以是经过编译得到的目标程序代码,本公开实施例也不做特别地限定。在本公开的一些实施例中,目标代码可以是以SDK的方式存储。
在获取第一库文件后,载体加载第一库文件并自动地执行。在加载第一库文件并执行目标代码的过程中,当前载体确定自身实现Web页面功能所需的程序资源的资源地址。
步骤S103:基于资源地址加载程序资源。
当前载体在确定自身实现Web页面功能所需的程序资源的资源地址后,根据资源地址获取对应的程序资源并加载。
采用本公开实施例提供的程序资源加载方法,在编写Web页面源代码时,只需要将第一库文件的链接地址写入到Web页面源代码中,加载Web页面源代码的载体(也就是当前载体)就可以基于第一库文件的链接地址获取第一库文件,加载其中存储的目标代码,并基于目标代码确定实现Web页面功能所需的程序资源的资源地址,再基于程序资源的地址获取并加载程序资源。
采用本公开实施提供的程序资源加载方法,因为不需要将目标代码写入到Web页面源代码中,所以不会使Web页面源代码中写入过多的冗余目标代码,实现了Web页面源代码的简洁。
此外,由于目标代码被封装在第一库文件中,第一库文件以黑盒形式被调用。Web页面开发人员无需关注第一库文件中的代码内容,通过简单调用第一库文件就可以确定载体实现Web页面功能所需的程序资源的资源地址,减少了编程工作量。
在本公开具体实施例中,不同类型的载体实现Web页面功能所需的程序资源的类型不相同。为了使得当前载体在执行步骤S102时能够基于第一库文件确定自身实现Web功能所需的程序资源的资源地址,本公开实施例一些实施例中,当前载体在执行步骤S102之前,还可以执行步骤S104。
步骤S104:获取载体环境。
载体环境是用于表征载体类型和/或载体运行的硬件资源类型的参数。
在本公开一些实施例中,当前载体的载体环境可以根据用户代理(User Agent,UA)代理中的参数确定。用户代理是一个特殊的字符串头,基于用户代理可以识别载体的操作系统、CPU类型、浏览器信号及其版本、渲染引擎的类型和版本、浏览器插件等信息。在具体应用中,载体可以调用window.navigator.userAgent方法获取用户代理的信息,并基于用户代理的信息确定当前载体的载体环境。
例如,在一个具体应用中,载体调用window.navigator.userAgent方法判断是否为微信小程序的环境的代码为:
const UA=window.navigator.userAgent.toLowerCase()
const isWeixinBrowser=(()=>{
return/micromessenger/.test(UA)
})()
在获取载体环境的情况下,本公开实施例中步骤S102中基于第一库文件确定资源地址具体可以包括步骤S1021。
步骤S1021:基于第一库文件,根据载体环境确定资源地址。
第一库文件具有输入当前载体环境的函数接口。在获取载体环境后,当前载体可以通过函数接口将载体环境传递给被加载的第一库文件,继而使得第一库文件能够基于载体环境确定资源地址。
在本公开一些实施例中,当前载体在确定资源地址后,可以直接基于资源地址获取程序资源并加载。
在本公开的另外一些实施例中,当前载体在确定资源地址后,也可以先执行其他步骤,再执行前述的步骤S103基于资源地址加载程序资源。具体的,在本公开一些实施例中,在执行前述的步骤S102后,可以执行步骤S105。
步骤S105:将资源地址注入到Web页面源代码中。
本公开具体实施例中,可以采用诸如<script>标签注入的方式,将资源地址诸如到Web页面源代码中。采用诸如<script>标签的方式将资源地址诸如到Web页面源代码中,可以使得当前载体实现程序资源的异步载入,而不会阻塞对后续Web页面内容的渲染处理。
在执行前述步骤S105的情况下,前述的步骤S103基于资源地址加载程序资源具体可以包括步骤S1031。
步骤S1031:基于注入到Web页面源代码中的资源地址,异步加载程序资源。
在一个具体应用中,程序资源是用于支持微信的SDK。采用<script>标签注入的方式实现微信SDK异步载入的代码如下:
constJweixinUrl='https://res.wx.qq.com/open/js/jweixin-1.6.0.js'
loadJs(JweixinUrl).then(res=>{todoList()})
其中loadJs实现:
在本公开实施例中,为了使得被加载的程序资源能够被调用,当前载体执行前述的步骤S102基于链接地址获取第一库文件,还会执行步骤S106。
步骤S106:基于第一库文件,根据载体环境注册调用程序资源的预置接口。
本公开具体实施例中,当前载体加载第一库文件后,会在渲染引擎的根环境下注册用于调用程序资源的预置接口,以能够通过预置接口实现加载资源的调用。具体应用中,步骤S106可以在确定当前载体的载体环境,并且加载第一库文件完成后立即执行。
本公开具体实施例中,在渲染引擎完成Web页面的渲染后,用户可以点击Web页面显示的控件而触发调用对应的预置接口,以实现特定的功能。
基于前述的步骤S105-和S1031,由于当前载体采用了异步加载的方式加载程序资源,在加载程序资源的时候并没有阻塞Web页面渲染。在此情况下,在用户点击Web页面显示的控件生成任务请求,并采用任务请求触发调用对应的预置接口时,预置接口对应的程序资源可能还未完成加载,而导致相应任务请求失败,并可能造成Web页面崩溃等问题。
为避免此问题,本公开实施例中,在根据当前载体的载体环境注册调用程序资源的预置接口后,本公开实施例提供的方法可以包括步骤S107-S109。
步骤S107:响应于接收到调用预置接口的任务请求,判断程序资源是否完成加载;若是,执行步骤S108;若否,执行步骤S109。
步骤S108:调用程序资源。
步骤S109:将任务请求暂存至任务队列中,在程序资源完成加载后执行暂存在任务队列中的任务请求。
本公开具体实施例中,在接收到调用预置接口的任务请求后,当前载体首先查询预置接口对应的程序资源是否加载完成。如果程序资源尚未加载完成,则当前载体将任务请求暂存到预先设置的任务队列中,并实时地监控程序资源是否完成加载。在监控程序资源完成加载后,当前载体再将暂存的任务请求从任务队列中取出,并采用程序资源执行任务请求。
在本公开的一些实施例中,为了能够在程序资源加载完成后即能够执行暂存在任务队列中的任务请求。在本公开一些实施例中,当前载体采用回调方式调用任务队列,并采用程序资源执行任务队列中国的任务请求。具体的,在当前载体加载判定程序资源加载后执行回调函数,采用回调函数调用暂存在所述任务队列中的任务请求,并采用程序资源执行任务请求。
除了提供前述的程序资源加载方法外,本公开一些实施例还提供一种程序资源加载装置。图2是本公开实施例提供的程序资源加载装置的结构示意图,图2所示的程序资源加载装置200可以被理解为前述电子设备中的部分功能模块。
如图2,本公开实施例提供程序资源加载装置包括第一获取单元201、第二获取单元202和程序资源加载单元203。
第一获取单元201用于从Web页面源代码中获取第一库文件的链接地址。
第二获取单元202用于基于链接地址获取第一库文件,并基于第一库文件确定资源地址;第一库文件中存储有目标代码,目标代码用于确定实现Web页面功能所需的程序资源的资源地址。
程序资源加载单元203用于基于资源地址加载程序资源。
在本公开的一些实施例中,程序资源加载装置还包括载体环境获取单元。载体环境获取单元用于获取载体环境。对应的,第二获取单元202基于第一库文件,根据载体环境确定资源地址。
在本公开的一些实施例中,程序资源加载装置还包括注入单元。注入单元将资源地址写入到Web页面源代码中。对应的,程序资源加载单元203基于写入到Web页面源代码中的资源地址,异步加载程序资源。
在本公开的一些实施例中,程序资源加载装置还包括预置接口设置单元。预置接口设置单元基于第一库文件,根据载体环境注册调用程序资源的预置接口。
在本公开的一些实施例中,程序资源加载装置还包括加载状态判定单元和任务执行单元。加载状态判定单元用于响应于接收到调用预置接口的任务请求,判断程序资源是否完成加载。任务执行单元用于响应于程序资源未完成加载,将任务请求暂存至任务队列中,并在程序资源完成加载后执行暂存在任务队列中的任务请求。
在本公开的一些实施例中,任务执行单元在程序资源完成加载后执行回调函数,采用回调函数调用暂存在任务队列中的任务请求,以及采用程序资源执行任务请求。
本公开实施例还提供一种终端设备,该终端设备包括处理器和存储器,其中,存储器中存储有计算机程序,当计算机程序被处理器执行时可以实现上述任一实施例的程序资源加载方法。
示例的,图3是本公开实施例提供的一种终端设备的结构示意图。本公开实施例提供的终端设备部署在边缘计算集群中,通过专用网络与边缘计算集群中的计算节点通信连接。
下面具体参考图3,其示出了适于用来实现本公开实施例中的终端设备300的结构示意图。图3示出的终端设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图3所示,终端设备300可以包括处理装置(例如中央处理器、图形处理器等)301,其可以根据存储在只读存储器ROM302中的程序或者从存储装置308加载到随机访问存储器RAM303中的程序而执行各种适当的动作和处理。在RAM 303中,还存储有终端设备300操作所需的各种程序和数据。处理装置301、ROM 302以及RAM 303通过总线304彼此相连。输入/输出I/O接口305也连接至总线304。
通常,以下装置可以连接至I/O接口305:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置306;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置307;包括例如磁带、硬盘等的存储装置308;以及通信装置309。通信装置309可以允许终端设备300与其他设备进行无线或有线通信以交换数据。虽然图3示出了具有各种装置的终端设备300,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置309从网络上被下载和安装,或者从存储装置308被安装,或者从ROM 302被安装。在该计算机程序被处理装置301执行时,执行本公开实施例的方法中限定的上述功能。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
在一些实施方式中,客户端、电子设备可以利用诸如HTTP(HyperText TransferProtocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
上述计算机可读介质可以是上述终端设备中所包含的;也可以是单独存在,而未装配入该终端设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该终端设备执行时,使得该终端设备:从Web页面源代码中获取第一库文件的链接地址;基于所述链接地址获取第一库文件,并基于所述第一库文件确定所述资源地址,所述第一库文件中存储有目标代码,所述目标代码用于确定实现所述Web页面功能所需的程序资源的资源地址;基于所述资源地址加载所述程序资源。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或终端设备上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的根据硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括根据一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
本公开实施例还提供一种计算机可读存储介质,所述存储介质中存储有计算机程序,当所述计算机程序被处理器执行时可以实现上述任一方法实施例的方法,其执行方式和有益效果类似,在这里不再赘述。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种程序资源加载方法,其特征在于,包括:
从Web页面源代码中获取第一库文件的链接地址;
基于所述链接地址获取第一库文件,并基于所述第一库文件确定所述资源地址,所述第一库文件中存储有目标代码,所述目标代码用于确定实现所述Web页面功能所需的程序资源的资源地址;
基于所述资源地址加载所述程序资源。
2.根据权利要求1所述的方法,其特征在于,
在所述基于所述第一库文件确定所述资源地址之前,所述方法还包括:获取载体环境;
所述基于所述第一库文件确定所述资源地址,包括:
基于所述第一库文件,根据所述载体环境确定所述资源地址。
3.根据权利要求1所述的方法,其特征在于,在基于所述第一库文件确定所述资源地址后,所述方法还包括:
将所述资源地址写入到所述Web页面源代码中;
所述基于所述资源地址加载所述程序资源,包括:
基于写入到所述Web页面源代码中的所述资源地址,加载所述程序资源。
4.根据权利要求2所述的方法,其特征在于,还包括:
基于所述第一库文件,根据所述载体环境注册调用所述程序资源的预置接口。
5.根据权利要求4所述的方法,其特征在于,在所述注册调用所述程序资源的预置接口后,所述方法还包括:
响应于接收到调用所述预置接口的任务请求,判断所述程序资源是否完成加载;
响应于所述程序资源未完成加载,将所述任务请求暂存至任务队列中,在所述程序资源完成加载后执行暂存在所述任务队列中的所述任务请求。
6.根据权利要求5所述的方法,其特征在于,所述在所述程序资源完成加载后执行暂存在所述任务队列中的所述任务请求,包括:
在所述程序资源完成加载后执行回调函数,采用所述回调函数调用暂存在所述任务队列中的所述任务请求,以及采用所述程序资源执行所述任务请求。
7.一种程序资源加载装置,其特征在于,包括:
第一获取单元,用于从Web页面源代码中获取第一库文件的链接地址;
第二获取单元,用于基于所述链接地址获取第一库文件,并基于所述第一库文件确定所述资源地址,所述第一库文件中存储有目标代码,所述目标代码用于确定实现所述Web页面功能所需的程序资源的资源地址;
程序资源加载单元,用于基于所述资源地址加载所述程序资源。
8.根据权利要求7所述的装置,其特征在于,还包括:
载体环境获取单元,用于获取载体环境;
所述第二获取单元基于所述第一库文件,根据所述载体环境确定所述资源地址。
9.一种电子设备,其特征在于,包括:
存储器和处理器,其中,所述存储器中存储有计算机程序,当所述计算机程序被所述处理器执行时,实现如权利要求1-6中任一项所述程序资源加载方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质中存储有计算机程序,当所述计算机程序被处理器执行时,实现如权利要求1-6中任一项所述的程序资源加载方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210002139.4A CN114398099A (zh) | 2022-01-04 | 2022-01-04 | 程序资源加载方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210002139.4A CN114398099A (zh) | 2022-01-04 | 2022-01-04 | 程序资源加载方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114398099A true CN114398099A (zh) | 2022-04-26 |
Family
ID=81229593
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210002139.4A Pending CN114398099A (zh) | 2022-01-04 | 2022-01-04 | 程序资源加载方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114398099A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170371974A1 (en) * | 2016-06-22 | 2017-12-28 | Guangzhou Ucweb Computer Technology Co., Ltd. | Method for loading webpage, client and programmable device |
CN107729352A (zh) * | 2017-08-30 | 2018-02-23 | 上海壹账通金融科技有限公司 | 页面资源加载方法及终端设备 |
CN112347404A (zh) * | 2020-10-26 | 2021-02-09 | 长沙市到家悠享网络科技有限公司 | Spa页面渲染方法、设备、系统及存储介质 |
CN113010821A (zh) * | 2021-04-14 | 2021-06-22 | 北京字节跳动网络技术有限公司 | 页面加载方法、装置、设备及存储介质 |
CN113190771A (zh) * | 2021-04-27 | 2021-07-30 | 北京沃东天骏信息技术有限公司 | 资源处理方法、装置、电子设备和计算机可读介质 |
-
2022
- 2022-01-04 CN CN202210002139.4A patent/CN114398099A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170371974A1 (en) * | 2016-06-22 | 2017-12-28 | Guangzhou Ucweb Computer Technology Co., Ltd. | Method for loading webpage, client and programmable device |
CN107729352A (zh) * | 2017-08-30 | 2018-02-23 | 上海壹账通金融科技有限公司 | 页面资源加载方法及终端设备 |
CN112347404A (zh) * | 2020-10-26 | 2021-02-09 | 长沙市到家悠享网络科技有限公司 | Spa页面渲染方法、设备、系统及存储介质 |
CN113010821A (zh) * | 2021-04-14 | 2021-06-22 | 北京字节跳动网络技术有限公司 | 页面加载方法、装置、设备及存储介质 |
CN113190771A (zh) * | 2021-04-27 | 2021-07-30 | 北京沃东天骏信息技术有限公司 | 资源处理方法、装置、电子设备和计算机可读介质 |
Non-Patent Citations (3)
Title |
---|
MIAOYING: ""由js文件中引入另外的js文件想到的"", 《HTTPS://WWW.CNBLOGS.COM/MIAOYING/P/8337613.HTML》, 23 January 2018 (2018-01-23), pages 1 - 3 * |
富亚军: "《企业互联网架构原理与实践》", 31 May 2021, 机械工业出版社, pages: 40 - 41 * |
龚俭,杨望: "《计算机网络安全导论 第3版》", 30 September 2020, 东南大学出版社, pages: 92 - 93 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110489101B (zh) | 接口模拟方法、系统、介质和电子设备 | |
CN111090536B (zh) | 一种获取内存泄露信息的方法、装置、介质和电子设备 | |
GB2589658A (en) | Method and apparatus for running an applet | |
CN110554876A (zh) | 用于编译安卓工程的方法和装置 | |
CN110851204B (zh) | 应用启动的方法及装置、应用打包的方法及装置 | |
CN111221572B (zh) | 一种自动适配运行环境的方法、装置、介质和设备 | |
CN109873735B (zh) | H5页面的性能测试方法、装置和计算机设备 | |
CN107644075B (zh) | 收集页面信息的方法和装置 | |
CN111309304B (zh) | 一种生成idl文件的方法、装置、介质和电子设备 | |
CN112631590B (zh) | 组件库生成方法、装置、电子设备和计算机可读介质 | |
CN113761588A (zh) | 一种数据校验方法、装置、终端设备及存储介质 | |
CN111309375A (zh) | 生成远程过程调用工具包的方法、装置、介质和电子设备 | |
CN113505302A (zh) | 支持动态获取埋点数据的方法、装置、系统及电子设备 | |
CN112463729A (zh) | 数据文件的入库方法、装置、电子设备和介质 | |
CN113127000B (zh) | 应用程序组件的编译方法、装置、设备及存储介质 | |
CN110442419B (zh) | Android应用的界面布局方法及装置 | |
CN108037914B (zh) | 一种安卓原生系统结合js开发的方法及装置 | |
WO2022237826A1 (zh) | 用户界面的测试方法、系统、集群、介质及程序产品 | |
CN111338928A (zh) | 基于chrome浏览器测试的方法及装置 | |
CN113779122B (zh) | 导出数据的方法和装置 | |
CN109669720A (zh) | 基于Promise的链式异步请求处理方法、装置及电子设备 | |
CN114398099A (zh) | 程序资源加载方法、装置、设备及存储介质 | |
CN113778566A (zh) | 原生应用调用方法、装置、电子设备和计算机可读介质 | |
CN113704079A (zh) | 基于Protobuf的接口测试方法和装置 | |
CN111309323A (zh) | 参数初始化方法、装置和电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |