CN111796851A - 客户端基础库更新方法、装置、电子设备和存储介质 - Google Patents

客户端基础库更新方法、装置、电子设备和存储介质 Download PDF

Info

Publication number
CN111796851A
CN111796851A CN202010785930.8A CN202010785930A CN111796851A CN 111796851 A CN111796851 A CN 111796851A CN 202010785930 A CN202010785930 A CN 202010785930A CN 111796851 A CN111796851 A CN 111796851A
Authority
CN
China
Prior art keywords
module
server
client
updated
library
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
Application number
CN202010785930.8A
Other languages
English (en)
Inventor
刘浪宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202010785930.8A priority Critical patent/CN111796851A/zh
Publication of CN111796851A publication Critical patent/CN111796851A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Abstract

本申请公开了客户端基础库更新方法、客户端基础库更新装置、电子设备和存储有计算机指令的非瞬时计算机可读存储介质,涉及智能小程序、计算机技术、云计算等技术领域。具体实现方案为:该客户端基础库更新方法包括从服务端获取服务端基础库中模块的参数信息,其中,服务端基础库包括多个模块;在根据服务端基础库中模块的参数信息确定服务端基础库中存在已更新的模块的情况下,从服务端下载已更新的模块;以及基于已更新的模块更新客户端基础库。

Description

客户端基础库更新方法、装置、电子设备和存储介质
技术领域
涉及计算机技术、云计算技术领域,尤其涉及智能小程序领域,包括一种客户端基础库更新方法、一种客户端基础库更新装置、一种电子设备和一种存储有计算机指令的非瞬时计算机可读存储介质。
背景技术
随着计算机技术的不断发展,各大应用平台引入小程序(Mini Program)开发技术。小程序是可以从服务器下发、无需安装即可在特定容器内执行的应用程序。例如,用户可以在某一应用程序上通过小程序完成资讯、购物、听音乐、看电影等服务,而无需下载和安装一个新的应用程序。
在相关技术中,为了实现小程序在应用程序中运行,应用程序需要具备相应的基础库,以提供小程序运行的必要环境,其中,该基础库也可以称之为基础框架。
随着小程序的功能不断完善和升级,基础库也需要随之完善和升级。在相关技术中,如果对基础库中的某一功能模块进行了修改,需要将基础库中的所有模块进行打包测试并上线,导致基础库上线不灵活。
发明内容
提供了一种客户端基础库更新方法、一种客户端基础库更新装置、一种电子设备和一种存储有计算机指令的非瞬时计算机可读存储介质。
根据第一方面,提供了一种客户端基础库更新方法,包括:
从服务端获取服务端基础库中模块的参数信息,其中,所述服务端基础库包括多个模块;
在根据所述服务端基础库中模块的参数信息确定所述服务端基础库中存在已更新的模块的情况下,从所述服务端下载所述已更新的模块;以及
基于所述已更新的模块更新所述客户端基础库。
根据第二方面,提供了一种客户端基础库更新装置,包括:
获取模块,用于从服务端获取服务端基础库中模块的参数信息,其中,所述服务端基础库包括多个模块;
下载模块,用于在根据所述服务端基础库中模块的参数信息确定所述服务端基础库中存在已更新的模块的情况下,从所述服务端下载所述已更新的模块;以及
更新模块,用于基于所述已更新的模块更新所述客户端基础库。
根据第三方面,提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上所述的方法。
根据第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行如上所述的方法。
根据本申请的实施例,在根据服务端基础库中模块的参数信息确定服务端基础库中存在已更新的模块的情况下,从服务端下载已更新的模块,基于已更新的模块更新客户端基础库,解决了相关技术中对基础库中的某一功能模块进行了修改的情况下,需要将基础库中的所有模块进行打包测试并上线,导致基础库上线不灵活的技术问题,提高了基础库上线的灵活性。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1示意性示出了根据本公开实施例的可以应用客户端基础库更新方法及装置的示例性系统架构;
图2示意性示出了根据本公开实施例的客户端基础库更新方法的流程图;
图3示意性示出了根据本公开实施例的更新客户端基础库的示意图;
图4示意性示出了根据本公开实施例的从服务端获取服务端基础库中每个模块的参数信息的流程图;
图5示意性示出了根据本公开实施例的基于已更新的模块更新客户端基础库的流程图;
图6示意性示出了根据本公开另一实施例的客户端基础库更新方法的流程图;
图7示意性示出了根据本公开实施例的客户端基础库更新装置的框图;以及
图8示意性示出了根据本公开实施例的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1示意性示出了根据本公开实施例的可以应用客户端基础库更新方法及装置的示例性系统架构。
需要注意的是,图1所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。例如,在另一实施例中,可以应用客户端基础库更新方法及装置的示例性系统架构可以包括终端设备和其他终端设备,其中,其他终端设备可以作为服务端,终端设备可以与其他终端设备进行交互,即可实现本公开实施例提供的客户端基础库更新方法及装置。
如图1所示,根据该实施例的系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线和/或无线通信链路等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如知识阅读类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端和/或社交平台软件等(仅为示例),通讯客户端应用上包括基础库,以实现运行小程序。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103所浏览的内容提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给终端设备。
需要说明的是,本公开实施例所提供的客户端基础库更新方法一般可以由终端设备101、102、或103执行。相应地,本公开实施例所提供的客户端基础库更新装置也可以设置于终端设备101、102、或103中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
如果小程序的客户端基础库遇到线上有问题需要修复或者小功能升级的场景,需要在后端对基础库进行修改。对基础库的一部分进行修改后,在将基础库重新上线到前端的时候,需要将修改后的基础库所有文件代码全部上线,这导致基础库上线不灵活。然而实践中,在修改基础库时,可能只涉及小部分功能的修改。根据本申请的实施例,将小程序的基础库拆分为多个模块,将修改的部分以模块的方式发布,使得可以根据模块更新客户端基础库。
图2示意性示出了根据本公开实施例的客户端基础库更新方法的流程图。
如图2所示,该方法包括操作S210~S230。
在操作S210,从服务端获取服务端基础库中模块的参数信息,其中,服务端基础库包括多个模块。
在操作S220,在根据服务端基础库中模块的参数信息确定服务端基础库中存在已更新的模块的情况下,从服务端下载已更新的模块。
在操作S230,基于已更新的模块更新客户端基础库。
根据本申请的实施例,服务端基础库也可以称之为后端基础库,客户端基础库也可以称之为前端基础库。
根据本申请的实施例,服务端基础库可以包括多个不同功能的模块,例如,服务端基础库可以包括但不限于接口模块、日志收集模块、控制运行模块、主键模块等等。根据本申请的实施例,参数信息可以包括用于表征模块是否发生了更新的字段,以及/或者,参数信息还可以包括模块的最新版本信息。
根据本申请的实施例,在操作220中,可以将服务端基础库中的模块的参数信息与客户端基础库中的模块的参数信息进行比较,在服务端基础库中的模块的参数信息与客户端基础库中的模块的参数信息不一致的情况下,确定服务端基础库中存在已更新的模块,然后从服务端下载已更新的模块。
根据本申请的实施例,在服务端基础库中的模块的参数信息与客户端基础库中的模块的参数信息一致的情况下,确定服务端基础库中不存在已更新的模块。
根据本公开的实施例,以参数信息为用于表征模块是否发生了更新的字段为例,可以识别每个模块对应的字段内容是否为“已更新”,如果为“已更新”的情况下,可以从服务端下载该已更新的模块。
根据本公开的实施例,以参数信息为模块的最新版本信息为例,可以识别每个模块对应的最新版本信息,将最新版本信息与客户端基础库中存储的版本信息进行比较,如果最新版本信息的版本比客户端基础库中存储的版本更高,确定服务端基础库中存在已更新的模块,可以从服务端下载该已更新的模块。
根据本公开的实施例,已更新的模块可以包括一个或者多个,已更新的模块可以是对原有模块的功能进行更新后得到的模块,也可以是一个全新的功能模块。
根据本申请的实施例,客户端基础库可以运行在客户端上,用于提供小程序运行的必要环境,客户端基础库中的模块可以是从服务端的服务端基础库中下发得到的。
根据本申请的实施例,在基于已更新的模块更新客户端基础库时,可以将已更新的模块添加至客户端基础库中,如果该已更新的模块在客户端基础库中为全新的功能模块,可以将该已更新的模块与其他模块关联起来。如果该已更新的模块在客户端基础库中具有对应的老版本功能模块,可以将该老版本功能模块进行删除,然后将该已更新的模块与其他模块关联起来。
根据本申请的实施例,在根据服务端基础库中每个模块的参数信息确定服务端基础库中存在已更新的模块的情况下,从服务端下载已更新的模块,基于已更新的模块更新客户端基础库。由于根据已更新的模块更新客户端基础库,而不是根据服务端基础库中所有模块更新客户端基础库,能够保证细粒度的模块级别的更新,解决了相关技术中对基础库中的某一功能模块进行了修改的情况下,需要将基础库中的所有模块进行打包测试并上线,导致基础库上线不灵活的技术问题,提高了基础库上线的灵活性,并且,提高了更新效率,降低了时间成本。
图3示意性示出了根据本公开实施例的更新客户端基础库的示例示意图。
如图3所示,在服务端中包括服务端基础库310,其中,服务端基础库310包括模块1’,模块2和模块3,每个模块具有对应的参数信息。在客户端中包括客户端基础库320,其中,客户端基础库320包括模块1,模块2和模块3,每个模块具有对应的参数信息。
根据本申请的实施例,客户端可以从服务端获取服务端基础库310中每个模块的参数信息,然后将获取到的参数信息与客户端基础库320中的每个模块的参数信息进行比较,确定是否存在已更新的模块。例如,将服务端基础库310中的模块1’的版本信息与客户端基础库320中的模块1的版本信息进行比较,发现模块1’的版本比模块1的版本更高,可以确定服务端基础库310中存在已更新的模块,即模块1’。然后从服务端下载该模块1’,并基于该模块1’更新客户端基础库320。
图4示意性示出了根据本公开实施例的从服务端获取服务端基础库中每个模块的参数信息的一种示例方法流程图。
如图4所示,该从服务端获取服务端基础库中模块的参数信息包括操作S410~S420。
在操作S410,在启动客户端时,向服务端发送获取请求,其中,客户端包括客户端基础库,客户端基础库用于控制小程序的运行。
在操作S420,接收由服务端发送的服务端基础库中每个模块的参数信息。
根据本申请的实施例,可以在每次启动客户端时向服务端发送获取请求,或者,在每天或每周的固定时间段内启动客户端时向服务端发送获取请求。其中,获取请求用于请求获取服务端基础库的相关信息,例如,请求获取服务端基础库中每个模块的参数信息,以及,还可以请求获取服务端基础库的更新时间等等。客户端基础库中的功能模块可以与服务端基础库中的功能模块相同或类似。
根据本申请的实施例,当基础库有功能更新或者漏洞修复的时候,开发者可以在本地基础库进行编译构建,生成更新后的模块,然后将更新后的模块上传至服务端中。更新后的模块里面的代码可以被一个全局函数包裹,便于客户端基础库加载之后可以立即执行。
根据本申请的实施例,在发现之前的基础库版本有功能更新或者漏洞需要快速修复时,在修复完成之后,可以在启动客户端时重新上线,实现了热更新的效果,无需等待基础库固定的上线周期,达到了动态更新客户端基础库的技术效果,满足了完善和升级基础库的需求。
下面参考图5~图6,结合具体实施例详细描述根据本公开实施例的一种示例实现方式。本领域技术人员可以理解,该示例实现方式仅用于理解本公开实施例,而不应将本公开实施例局限于此。
图5示意性示出了根据本公开实施例的更新客户端基础库的一种示例方法流程图。在该示例中,基于已更新的模块来更新客户端基础库。
如图5所示,该基于已更新的模块更新客户端基础库包括操作S510~S520。
在操作S510,接收更新指令,其中,更新指令包括已更新的模块的文件存储路径。
根据本申请的实施例,在从服务端下载该已更新的模块之后,客户端可以向客户端基础库发送更新指令,并通知客户端基础库已更新的模块的文件存储路径。
在操作S520,响应于更新指令,根据文件存储路径加载已更新的模块的代码文件。
根据本申请的实施例,客户端基础库可以根据文件存储路径加载已更新的模块的代码文件。
根据本申请的实施例,可以在客户端启动时,向客户端中的客户端基础库触发更新指令,实现了动态加载已更新的模块的代码文件,使得不受限于服务端基础库固定的上线周期容易带来上线周期长,导致上线不灵活的问题。
根据本申请的实施例,在加载已更新的模块的代码文件之后,可以执行该代码文件,然后根据已更新的模块的标识信息查找缓存中已经加载过的模块,更新缓存中已经加载过的模块的引用关系。
根据本申请的实施例,代码文件可以被一个全局函数包裹着,在执行完文件之后,客户端基础库可以知道已更新的模块id(即模块标识信息)和模块的内容,并根据该模块id,找到之前加载过的模块缓存,删除之前的模块引用,写入新的引用。
根据本申请的实施例,动态加载已更新的模块的代码文件有时可能会影响运行性能,为了解决动态加载可能带来的性能问题,在客户端还可以采用代码固化的方式。
根据本申请的实施例,基于已更新的模块更新客户端基础库包括:将已更新的模块的代码文件写入客户端基础库中。
根据本申请的实施例,可以把动态派发的已更新模块写入到本地的客户端基础库的文件里,例如可以约定写入在文件头部,在执行文件的时候,可以优先执行已更新模块的逻辑,并缓存下来,后面相同模块id的逻辑,将不再执行。当客户端启动的时候,可以直接加载固化好了的客户端基础库,而不需要再动态加载已更新模块了。
根据本申请的实施例,动态派发的已更新模块以文件代码的方式存在,可以将此代码写入到原有客户端基础库里,使得下次加载时,无需再动态加载,避免文件级别的加载影响性能,解决了动态加载可能带来的性能问题。
图6示意性示出了根据本公开另一实施例的客户端基础库更新方法的流程图。
如图6所示,该客户端基础库更新方法包括操作S601~S615。
在该实施例中,客户端基础库的热更新需要三方进行配合,该三方包括服务端、客户端和客户端基础库,其中,客户端基础库可以设置在客户端中。
根据本申请的实施例,服务端的主要作用包括存储已更新的模块以及下发已更新的模块。
根据本申请的实施例,客户端的主要作用包括获取已更新的模块信息,派发给客户端基础库,同时还可以进行代码固化。
根据本申请的实施例,客户端基础库的主要作用包括加载已更新的模块,执行相应的逻辑。
在操作S601,当有功能更新或者漏洞修复的时候,进行功能升级。
在操作S602,可以在本地基础库进行编译构建。
在操作S603,生成已更新的模块。可以将这个模块里面的代码被一个全局函数包裹,便于加载之后可以立即执行。
在操作S604,生成的已更新的模块存储在服务端,并且会有特定的标识,如版本信息。
在操作S605,将已更新的模块信息下发到客户端。
在操作S606,客户端在每次启动的时候,可以从服务端获取到基础库的相关信息。
在操作S607,判断是否有更新。
在操作S608,如果读取到有模块更新了,那么可以下载更新的模块,如果没有模块更新,无需执行后续操作。
在操作S609,通知客户端基础库。
在操作S610,客户端基础库可以接收客户端的更新指令,如果有已更新的模块,客户端会告诉客户端基础库具体的文件路径。
在操作S611,客户端基础库会加载这个文件。
在操作S612,执行文件里面的逻辑。
在操作S613,更新模块缓存。已更新的模块里的代码可以是被一个全局函数包裹着的,同时已更新的模块里面的代码是一个独立的模块,执行完文件之后,客户端基础库可以知道模块id和模块的内容,这个时候,客户端基础库就可以根据模块id,找到之前加载过的模块缓存,删除之前的模块引用,写入新的引用。
在操作S614,更新固化已更新的模块里面的代码至基础库文件。为了解决动态加载可能带来的性能问题,在客户端,还可以采用代码固化的方式。当获取到已更新的模块之后,可以把已更新的模块写入到本地的客户端基础库文件里面,可以约定好写入在头部,这样在执行的时候,优先执行已更新的模块逻辑,缓存下来,后面的相同模块id的逻辑,不再执行。
在操作S615,当客户端启动的时候,可以直接预加载固化好了的客户端基础库,不需要再动态加载。动态派发的已更新的模块,可以以代码文件的方式存在,会将此代码写入到原有客户端基础库里面,避免文件级别的加载影响性能。
在实现本申请的过程中发现,相关技术中还没有实现基础库进行热更新的方案,一般只能将基础库进行整体打包上线,遇到问题会阻塞后续上线,通过本申请的实施例,能够保证细粒度的模块级别的更新,效率高,降低时间成本,不会阻塞后续上线。
图7示意性示出了根据本公开实施例的客户端基础库更新装置的框图。
如图7所示,客户端基础库更新装置700包括:获取模块710、下载模块720和更新模块730。
获取模块710用于从服务端获取服务端基础库中模块的参数信息,其中,服务端基础库包括多个模块。
下载模块720用于在根据服务端基础库中模块的参数信息确定服务端基础库中存在已更新的模块的情况下,从服务端下载已更新的模块。
更新模块730用于基于已更新的模块更新客户端基础库。
根据本申请的实施例,在根据服务端基础库中模块的参数信息确定服务端基础库中存在已更新的模块的情况下,从服务端下载已更新的模块,基于已更新的模块更新客户端基础库。由于根据已更新的模块更新客户端基础库,而不是根据服务端基础库中所有模块更新客户端基础库,能够保证细粒度的模块级别的更新,解决了相关技术中对基础库中的某一功能模块进行了修改的情况下,需要将基础库中的所有模块进行打包测试并上线,导致基础库上线不灵活的技术问题,提高了基础库上线的灵活性,并且,提高了更新效率,降低了时间成本。
根据本申请的实施例,更新模块730用于将已更新的模块的代码文件写入客户端基础库中。
根据本申请的实施例,动态派发的已更新模块以文件代码的方式存在,可以将此代码写入到原有客户端基础库里,使得下次加载时,无需再动态加载,避免文件级别的加载影响性能,解决了动态加载可能带来的性能问题。
根据本申请的实施例,更新模块730包括:第一接收单元和加载单元。
第一接收单元用于接收更新指令,其中,更新指令包括已更新的模块的文件存储路径。
加载单元用于响应于更新指令,根据文件存储路径加载已更新的模块的代码文件。
根据本申请的实施例,客户端基础库更新装置700还包括:执行模块和查找模块。
执行模块用于执行代码文件。
查找模块用于根据已更新的模块的标识信息查找缓存中已经加载过的模块。
根据本申请的实施例,更新模块还用于更新缓存中已经加载过的模块的引用关系。
根据本申请的实施例,参数信息包括:用于表征模块是否发生了更新的字段,以及/或者模块的最新版本信息。
根据本申请的实施例,获取模块710包括:发送单元和第二接收单元。
发送单元用于在启动客户端时,向服务端发送获取请求,其中,客户端包括客户端基础库,客户端基础库用于控制小程序的运行。
第二接收单元用于接收由服务端发送的服务端基础库中每个模块的参数信息。
根据本申请的实施例,在发现之前的基础库版本有功能更新或者漏洞需要快速修复时,在修复完成之后,可以在启动客户端时重新上线,无需等待基础库固定的上线周期,达到了动态更新客户端基础库的技术效果,满足了完善和升级基础库的需求。
根据本申请的实施例,下载模块720包括:确定单元和下载单元。
确定单元用于在服务端基础库中的模块的参数信息与客户端基础库中的模块的参数信息不一致的情况下,确定服务端基础库中存在已更新的模块。
下载单元用于从服务端下载已更新的模块。
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
根据本申请的实施例,上述电子设备包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上所述的方法。
根据本申请的实施例,上述可读存储介质,存储有计算机指令,所述计算机指令用于使所述计算机执行如上所述的方法。可读存储介质可以包括存储器。
根据本申请的实施例,在根据服务端基础库中每个模块的参数信息确定服务端基础库中存在已更新的模块的情况下,从服务端下载已更新的模块,基于已更新的模块更新客户端基础库。由于根据已更新的模块更新客户端基础库,而不是根据服务端基础库中所有模块更新客户端基础库,能够保证细粒度的模块级别的更新,解决了相关技术中对基础库中的某一功能模块进行了修改的情况下,需要将基础库中的所有模块进行打包测试并上线,导致基础库上线不灵活的技术问题,提高了基础库上线的灵活性,并且,提高了更新效率,降低了时间成本。
图8示意性示出了根据本公开实施例的电子设备的框图。
如图8所示,电子设备可以执行本申请实施例的方法。电子设备可以表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图8所示,该电子设备包括:一个或多个处理器801、存储器802,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图8中以一个处理器801为例。
存储器802即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的方法。
存储器802作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的方法对应的程序指令/模块(例如,附图7所示的获取模块710、下载模块720和更新模块730)。处理器801通过运行存储在存储器802中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的方法。
存储器802可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据上述方法的电子设备的使用所创建的数据等。此外,存储器802可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器802可选包括相对于处理器801远程设置的存储器,这些远程存储器可以通过网络连接至电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
电子设备还可以包括:输入装置803和输出装置804。处理器801、存储器802、输入装置803和输出装置804可以通过总线或者其他方式连接,图8中以通过总线连接为例。
输入装置803可接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置804可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
根据本申请实施例的技术方案,在根据服务端基础库中每个模块的参数信息确定服务端基础库中存在已更新的模块的情况下,从服务端下载已更新的模块,基于已更新的模块更新客户端基础库。由于根据已更新的模块更新客户端基础库,而不是根据服务端基础库中所有模块更新客户端基础库,能够保证细粒度的模块级别的更新,解决了相关技术中对基础库中的某一功能模块进行了修改的情况下,需要将基础库中的所有模块进行打包测试并上线,导致基础库上线不灵活的技术问题,提高了基础库上线的灵活性,并且,提高了更新效率,降低了时间成本。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。

Claims (16)

1.一种客户端基础库更新方法,其特征在于,包括:
从服务端获取服务端基础库中模块的参数信息,其中,所述服务端基础库包括多个模块;
在根据所述服务端基础库中模块的参数信息确定所述服务端基础库中存在已更新的模块的情况下,从所述服务端下载所述已更新的模块;以及
基于所述已更新的模块更新所述客户端基础库。
2.根据权利要求1所述的方法,其中,所述基于所述已更新的模块更新所述客户端基础库包括:
将所述已更新的模块的代码文件写入所述客户端基础库中。
3.根据权利要求1所述的方法,其中,所述基于所述已更新的模块更新所述客户端基础库包括:
接收更新指令,其中,所述更新指令包括所述已更新的模块的文件存储路径;以及
响应于所述更新指令,根据所述文件存储路径加载所述已更新的模块的代码文件。
4.根据权利要求3所述的方法,还包括:
执行所述代码文件;
根据所述已更新的模块的标识信息查找缓存中已经加载过的模块;以及
更新所述缓存中已经加载过的模块的引用关系。
5.根据权利要求1所述的方法,其中,所述参数信息包括:用于表征所述模块是否发生了更新的字段,以及/或者所述模块的最新版本信息。
6.根据权利要求1所述的方法,其中,所述从服务端获取服务端基础库中模块的参数信息包括:
在启动客户端时,向所述服务端发送获取请求,其中,所述客户端包括所述客户端基础库,所述客户端基础库用于控制小程序的运行;以及
接收由所述服务端发送的所述服务端基础库中每个模块的参数信息。
7.根据权利要求1所述的方法,其中,在根据所述服务端基础库中模块的参数信息确定所述服务端基础库中存在已更新的模块的情况下,从所述服务端下载所述已更新的模块包括:
在所述服务端基础库中的模块的参数信息与所述客户端基础库中的模块的参数信息不一致的情况下,确定所述服务端基础库中存在已更新的模块;以及
从所述服务端下载所述已更新的模块。
8.一种客户端基础库更新装置,其特征在于,包括:
获取模块,用于从服务端获取服务端基础库中模块的参数信息,其中,所述服务端基础库包括多个模块;
下载模块,用于在根据所述服务端基础库中模块的参数信息确定所述服务端基础库中存在已更新的模块的情况下,从所述服务端下载所述已更新的模块;以及
更新模块,用于基于所述已更新的模块更新所述客户端基础库。
9.根据权利要求8所述的装置,其中,所述更新模块用于:将所述已更新的模块的代码文件写入所述客户端基础库中。
10.根据权利要求8所述的装置,其中,所述更新模块包括:
第一接收单元,用于接收更新指令,其中,所述更新指令包括所述已更新的模块的文件存储路径;以及
加载单元,用于响应于所述更新指令,根据所述文件存储路径加载所述已更新的模块的代码文件。
11.根据权利要求10所述的装置,还包括:
执行模块,用于执行所述代码文件;
查找模块,用于根据所述已更新的模块的标识信息查找缓存中已经加载过的模块;
其中,所述更新模块还用于更新所述缓存中已经加载过的模块的引用关系。
12.根据权利要求8所述的装置,其中,所述参数信息包括:用于表征所述模块是否发生了更新的字段,以及/或者所述模块的最新版本信息。
13.根据权利要求8所述的装置,其中,所述获取模块包括:
发送单元,用于在启动客户端时,向所述服务端发送获取请求,其中,所述客户端包括所述客户端基础库,所述客户端基础库用于控制小程序的运行;以及
第二接收单元,用于接收由所述服务端发送的所述服务端基础库中每个模块的参数信息。
14.根据权利要求8所述的装置,其中,所述下载模块包括:
确定单元,用于在所述服务端基础库中的模块的参数信息与所述客户端基础库中的模块的参数信息不一致的情况下,确定所述服务端基础库中存在已更新的模块;以及
下载单元,用于从所述服务端下载所述已更新的模块。
15.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的方法。
16.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1-7中任一项所述的方法。
CN202010785930.8A 2020-08-06 2020-08-06 客户端基础库更新方法、装置、电子设备和存储介质 Pending CN111796851A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010785930.8A CN111796851A (zh) 2020-08-06 2020-08-06 客户端基础库更新方法、装置、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010785930.8A CN111796851A (zh) 2020-08-06 2020-08-06 客户端基础库更新方法、装置、电子设备和存储介质

Publications (1)

Publication Number Publication Date
CN111796851A true CN111796851A (zh) 2020-10-20

Family

ID=72828698

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010785930.8A Pending CN111796851A (zh) 2020-08-06 2020-08-06 客户端基础库更新方法、装置、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN111796851A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113407227A (zh) * 2021-07-02 2021-09-17 携程旅游网络技术(上海)有限公司 程序管理方法及装置、设备、介质
CN114615318A (zh) * 2022-01-24 2022-06-10 阿里云计算有限公司 一种数据处理方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104881454A (zh) * 2015-05-19 2015-09-02 百度在线网络技术(北京)有限公司 参数的更新方法及系统
CN106528241A (zh) * 2016-11-21 2017-03-22 浪潮通用软件有限公司 一种数据升级的方法及装置
CN108696374A (zh) * 2017-04-10 2018-10-23 北京京东尚科信息技术有限公司 更新客户端配置的方法和装置
CN109062601A (zh) * 2018-08-15 2018-12-21 张家港康得新光电材料有限公司 Mes系统客户端程序更新方法、装置、设备及介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104881454A (zh) * 2015-05-19 2015-09-02 百度在线网络技术(北京)有限公司 参数的更新方法及系统
CN106528241A (zh) * 2016-11-21 2017-03-22 浪潮通用软件有限公司 一种数据升级的方法及装置
CN108696374A (zh) * 2017-04-10 2018-10-23 北京京东尚科信息技术有限公司 更新客户端配置的方法和装置
CN109062601A (zh) * 2018-08-15 2018-12-21 张家港康得新光电材料有限公司 Mes系统客户端程序更新方法、装置、设备及介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113407227A (zh) * 2021-07-02 2021-09-17 携程旅游网络技术(上海)有限公司 程序管理方法及装置、设备、介质
CN114615318A (zh) * 2022-01-24 2022-06-10 阿里云计算有限公司 一种数据处理方法及装置

Similar Documents

Publication Publication Date Title
CN111666585B (zh) 子应用访问的方法、装置、电子设备以及可读存储介质
EP3828701B1 (en) Mini app processing method, server, device and storage medium
US20170097818A1 (en) Migration mechanism
CN106569783B (zh) 一种执行任务脚本的方法和装置
US9665656B2 (en) Automated service solution delivery
CN111694857B (zh) 存储资源数据的方法、装置、电子设备及计算机可读介质
US10338910B2 (en) Multi-tenant upgrading
CN112433788A (zh) 小程序运行方法、装置、电子设备和存储介质
CN111008019A (zh) 小程序的Web化运行方法、装置、设备及介质
CN112395253B (zh) 索引文件生成方法、终端设备、电子设备及介质
CN111885114B (zh) 网关中的应用程序接口模块的升级方法、设备及存储介质
US20200356469A1 (en) Test automation systems and methods using logical identifiers
CN110765075A (zh) 自动驾驶数据的存储方法和设备
CN111752960B (zh) 数据处理方法和装置
CN111796851A (zh) 客户端基础库更新方法、装置、电子设备和存储介质
US11294651B2 (en) Code execution method, device, and rendering apparatus
CN111597027A (zh) 应用程序的启动方法、装置、设备及存储介质
CN114443076A (zh) 镜像构建方法、装置、设备及存储介质
CN111831320A (zh) 插件管理方法、装置、电子设备及存储介质
CN114661274A (zh) 用于生成智能合约的方法和装置
CN112379945B (zh) 用于运行应用的方法、装置、设备以及存储介质
CN114115855A (zh) 代码复用方法及装置、计算机可读存储介质、电子设备
CN113326079A (zh) 服务版本切换方法、切换装置、电子设备和存储介质
CN112346512A (zh) 时间同步方法和装置
CN112882698A (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