CN113050940A - 小程序的预览方法、相关装置及计算机程序产品 - Google Patents

小程序的预览方法、相关装置及计算机程序产品 Download PDF

Info

Publication number
CN113050940A
CN113050940A CN202110317024.XA CN202110317024A CN113050940A CN 113050940 A CN113050940 A CN 113050940A CN 202110317024 A CN202110317024 A CN 202110317024A CN 113050940 A CN113050940 A CN 113050940A
Authority
CN
China
Prior art keywords
file
previewed
applet
local browser
compiled code
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
CN202110317024.XA
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.)
Baidu Online Network Technology Beijing Co Ltd
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 CN202110317024.XA priority Critical patent/CN113050940A/zh
Publication of CN113050940A publication Critical patent/CN113050940A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/51Source to source
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services

Abstract

本申请实施例公开了小程序的预览方法、装置、电子设备、计算机可读存储介质及计算机程序产品,涉及小程序编译、预览和部署技术领域等计算机技术领域。该方法的一具体实施方式包括:响应于接收到目标小程序的测试请求,从该测试请求中提取编译代码,并将该编译代码转换为大容量二进制对象格式的中间文件,进一步基于本地浏览器的运行环境将该中间文件转换为待预览文件,最终利用该本地浏览器浏览该待预览文件的可视化界面。该实施方式提供了一种基于本地浏览器完成小程序编译、预览的方法,使小程序的编译与文件加载均在本地浏览器中完成,减少了服务器与网络资源消耗,提高了小程序编译和实时预览的响应速度。

Description

小程序的预览方法、相关装置及计算机程序产品
技术领域
本申请涉及计算机技术领域,具体涉及小程序编译、预览和部署技术领域,尤其涉及小程序的预览方法、装置、电子设备、计算机可读存储介质及计算机程序产品。
背景技术
众所周知的,随着电子技术的发展,移动终端中可安装的小程序也越来越多,小程序是一种无需下载安装,即可使用的终端小程序,通常仅需要扫描二维码,或是搜一搜,就能立即使用,小程序通常寄宿于宿主程序内,依托宿主程序配置的运行环境进行工作,在终端设备中具有宿主程序时,通常不再额外需要小程序的下载和安装,便随时随地直接使用,不用担心流量下载以及手机内存不够用的问题,为了为小程序赋予更多的功能、修复小程序中现有的漏洞,往往需要对小程序进行相应的编译、调试。
现有技术中,因不同小程序所使用的编译构架、所需的编译环境不同,为了尽可能实现各小程序的编译适配,往往需要依赖云端来实现开发环境的配置,例如基于云端完成nodeJavaScript开发环境的配置。
发明内容
本申请实施例提出了一种小程序的预览方法、装置、电子设备、计算机可读存储介质及计算机程序产品。
第一方面,本申请实施例提出了一种小程序的预览方法,包括:响应于接收到目标小程序的测试请求,从该测试请求中提取编译代码;将该编译代码转换为大容量二进制对象格式的中间文件,并基于本地浏览器的运行环境将该中间文件转换为待预览文件;利用该本地浏览器浏览该待预览文件的可视化界面。
第二方面,本申请实施例提出了一种小程序的预览装置,包括:编译代码提取单元,被配置成响应于接收到目标小程序的测试请求,从该测试请求中提取编译代码;待预览文件生成单元,被配置成将该编译代码转换为大容量二进制对象格式的中间文件,并基于本地浏览器的运行环境将该中间文件转换为待预览文件;可视化界面生成单元,被配置成利用该本地浏览器浏览该待预览文件的可视化界面。
第三方面,本申请实施例提供了一种电子设备,该电子设备包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,该指令被至少一个处理器执行,以使至少一个处理器执行时能够实现如第一方面中任一实现方式描述的小程序的预览方法。
第四方面,本申请实施例提供了一种存储有计算机指令的非瞬时计算机可读存储介质,该计算机指令用于使计算机执行时能够实现如第一方面中任一实现方式描述的小程序的预览方法。
第五方面,本申请实施例提供了一种包括计算机程序的计算机程序产品,该计算机程序在被处理器执行时能够实现如第一方面中任一实现方式描述的小程序的预览方法。
本申请实施例提供的小程序的预览方法、装置、电子设备、计算机可读存储介质及计算机程序产品,响应于接收到目标小程序的测试请求,从该测试请求中提取编译代码,并将该编译代码转换为大容量二进制对象格式的中间文件,进一步基于本地浏览器的运行环境将该中间文件转换为待预览文件,最终利用该本地浏览器浏览该待预览文件的可视化界面。
本申请通过将编译代码整合至大容量二进制对象格式的中间文件的方式对编码代码进行统一,以便于通过本地浏览器将该中间文件转换至待预览文件,最终使用本地浏览器直接基于待预览文件生成相应的可视化界面实现小程序的预览,以完全依靠本地浏览器实现小程序的编译、预览,节省开发资源、提升编译工作的并发能力的同时,提高用户编译时的响应速度。进一步的,考虑到通过同一进程依次生成中间文件和待预览文件的常见方式不便于呈现实时修改后的编译代码的预览结果,还可以将生成中间文件和待预览文件的操作分别置于相互隔离的两个进程来执行,使得对编译代码进行的实时修改在转换为新的中间文件时不影响待预览文件的正常预览效果,也消除了出现数据冲突的潜在风险。
应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是本申请可以应用于其中的示例性系统架构;
图2为本申请实施例提供的一种小程序的预览方法的流程图;
图3为本申请实施例提供的另一种小程序的预览方法的流程图;
图4为本申请实施例提供的在一小程序场景下的小程序的预览方法的流程示意图;
图5为本申请实施例提供的一种小程序的预览装置的结构框图;
图6为本申请实施例提供的一种适用于执行小程序的预览方法的电子设备的结构示意图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
图1示出了可以应用本申请的小程序的预览方法、装置、电子设备及计算机可读存储介质的实施例的示例性系统架构100。
如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103和服务器105上可以安装有各种用于实现两者之间进行信息通讯的应用,例如小程序发布类应用、远程调试类应用、即时通讯类应用等。
终端设备101、102、103和服务器105可以是硬件,也可以是软件。当终端设备101、102、103为硬件时,可以是具有显示屏的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等;当终端设备101、102、103为软件时,可以安装在上述所列举的电子设备中,其可以实现成多个软件或软件模块,也可以实现成单个软件或软件模块,在此不做具体限定。当服务器105为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器;服务器为软件时,可以实现成多个软件或软件模块,也可以实现成单个软件或软件模块,在此不做具体限定。
终端设备101、102、103中通过内置的应用可以为提供各种服务,以提供小程序发布类应用为例,终端设备101、102、103在运行该小程序发布类应用时可实现如下效果:响应于接收到目标小程序的测试请求后,从该测试请求中提取编译代码,并将该编译代码转换为大容量二进制对象格式的中间文件,进一步的基于本地浏览器的运行环境将该中间文件转换为待预览文件,最终利用该本地浏览器浏览该待预览文件的可视化界面。
进一步的,用户可以在浏览上述终端设备101、102、103呈现的可视化界面后,根据可视化界面中的内容确定是否需要对小程序进行再次调整,在完成小程序预览、确定该小程序无需进行调整后,可通过网络104与服务器105进行通信,以实现小程序、发布该小程序的目的。
需要指出的是,测试请求中包括的编译代码除可以基于用户使用终端设备101、102、103直接输入获取外,还可以通过网络104从服务器105等用户所使用的终端设备处进行获取,也可以通过各种方式预先存储在服务器终端设备101、102、103本地。因此,当终端设备101、102、103检测到本地已经存储有这些数据时(例如开始处理之前留存的编译代码),可选择直接从本地获取这些数据,在此种情况下,如不存在将预览结果传输至服务器105以进行储存、发布等目的时,示例性系统架构100也可以不包括服务器105和网络104。
由于小程序的预览方法需要产生大量的运算数据、占用较多的运算资源,在跨终端执行时需要网络传输大量数据,因此为更好贴合本申请的目的,考虑到用户针对小程序编译、预览的便捷性,本申请后续各实施例所提供的小程序的预览方法一般由用户所使用的终端设备101、102、103,相应地,小程序的预览装置一般也设置于终端设备101、102、103中。但同时也需要指出的是,在特定的需求场合下,也可以由服务器105也可以通过其上安装的远程调试类小程序完成上述本交由终端设备101、102、103做的各项运算,进而输出与终端设备101、102、103同样的结果。尤其是在同时存在多种具有不同运算能力的终端设备的情况下,经小程序发布类应用、远程调试类应用判断基于服务器或服务器与终端之间协同实现小程序的预览方法时所需要的资源较少,且对用户的响应速度优于单独使用终端设备时,可以单独使用服务器或联合使用服务器与终端之间进行协同运算,从而为用户提供更优的处理方案,相应的,小程序的预览装置也可以完全或者部分的设置于服务器105中。在此种情况下,根据实际的使用情况,示例性系统架构100也可以不包终端设备101、102、103和网络104。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
请参考图2,图2为本申请实施例提供的一种小程序的预览方法的流程图,其中流程200包括以下步骤:
步骤201,响应于接收到目标小程序的测试请求,从测试请求中提取编译代码。
在本实施例中由小程序的预览方法的执行主体(例如图1所示的终端设备101、102、103),在接收到针对目标小程序的测试请求后,从该测试请求中提取编译代码。
其中,目标小程序可以是用户预先设置于上述执行主体本地的小程序,也可以是用户预先或随测试请求一并传入的目标小程序。
在本申请一些可选的实施例中,在本地缺少上述目标小程序时,上述执行主体可以在接收到测试请求后,从与上述执行主体进行通信的服务器、其他终端设备中获取该目标小程序或该目标小程序的源代码,以便于后续根据获取到的编译代码基于获取到的目标小程序或该目标小程序的源代码实现对该目标小程序的编译、预览。
进一步的,测试请求中包含的编译代码可以是明确具体的编译代码内容,也可以是指向性链接,上述执行主体根据该指向性链接所指向的内容获取相应的编译代码,例如在获取到测试请求后,测试请求中包含有指示上述执行主体从与上述执行主体进行通信的服务器、其他终端设备中获取相应的目标小程序的编译代码。
需要指出的是,目标小程序和编译代码可以由上述执行主体直接从本地的存储设备获取,也可以从非本地的存储设备(例如图1所示的终端设备101、102、103中相对于上述执行主体的其他终端设备,以及服务器105)中获取。本地的存储设备可以是设置在上述执行主体内的一个数据存储模块,例如服务器硬盘,在此种情况下,目标小程序和编译代码可以在本地快速读取到;非本地的存储设备还可以为其它任何被设置用于存储数据的电子设备,例如一些用户终端等,在此情况下,上述执行主体可以通过向该电子设备发送获取命令来获取所需的编译代码。
步骤202,将编译代码转换为大容量二进制对象格式的中间文件,并基于本地浏览器的运行环境将中间文件转换为待预览文件。
在本实施例中,在获取到编译代码后,将该代码转换为大容量二进制对象格式的中间文件,并基于本地浏览器的运行环境将该中间文件转换为可被本地浏览器所预览的待预览文件后,存储该待预览文件至本地浏览器中。
其中,大容量二进制对象格式又称BLOB(Binary Large Object,简称BLOB)是一个可以存储二进制文件的容器,一个BLOB表示一个不可变的,原始数据的类似文件对象。BLOB表示的数据不一定是一个JavaScript原生格式BLOB对象本质上是JavaScript中的一个对象,里面可以储存大量的二进制编码格式的数据。
进一步的,在生成待预览文件后还可以基于目标小程序、中间文件和待预览文件之间的关系生成待预览文件清单,以便于后续用户基于该待预览文件清单请求与目标小程序相对应的待预览文件。
示例性的,将swan模板解析为小程序内核san框架可执行模板,并为小程序js文件添加可执行上下文、处理js文件间的依赖关系,接下来处理自定义组件,将自定义组件打包为allCusomComponents.swan.js文件,处理sjs文件,打包allRegisteredSJS.js文件,最终处理app.json文件,将静态资源文件路径由标准统一资源定位器(Uniform ResourceLocator,简称URL)改为BLOB URL,以实现通过抽象语法树算法(Abstract Syntax Tree,简称AST)静态代码分析对提取到的编译代码进行解析、处理得到相应的中间文件。
步骤203,利用本地浏览器浏览待预览文件的可视化界面。
在本实施例中,在上述步骤202中生成有待预览文件后,调用本地浏览器对该待预览文件进行预览,并生成相应的可视化界面,其中,该可视化界面中通常可以包括有:目标小程序的编译代码、编译代码的执行过程以及待预览文件最终的预览结果,以便于用户可以根据该可视化界面中的内容了解与上述内容相应的信息。
本申请实施例提供的小程序的预览方法,通过将编译代码整合至大容量二进制对象格式的中间文件的方式对编码代码进行统一,以便于通过本地浏览器将该中间文件转换至待预览文件,最终使用本地浏览器直接基于待预览文件生成相应的可视化界面实现小程序的预览,以完全依靠本地浏览器实现小程序的编译、预览,节省开发资源、提升编译工作的并发能力的同时,提高用户编译时的响应速度。进一步的,考虑到通过同一进程依次生成中间文件和待预览文件的常见方式不便于呈现实时修改后的编译代码的预览结果,还可以将生成中间文件和待预览文件的操作分别置于相互隔离的两个进程来执行,使得对编译代码进行的实时修改在转换为新的中间文件时不影响待预览文件的正常预览效果,也消除了出现数据冲突的潜在风险。
在本实施例的一些可选的实现方式中,待预览文件包括:文件映射文件,以及利用本地浏览器浏览待预览文件的可视化界面,包括:响应于接收到预览请求,基于大容量二进制对象资源定位标准确定与该预览请求对应的文件映射文件;利用该本地浏览器浏览该文件映射文件的可视化界面。
具体的,为了更进一步的节约硬盘资源占用,基于本地浏览器中的JavaScript运行环境的编译机制,利用静态资源对大容量二进制对象格式的中间文件进行处理,以转换得到文件映射文件,其中,文件映射文件存在于本地浏览器的内容中,在完成文件映射文件生成后,进一步的响应于接收到预览请求,可以基于大容量二进制对象资源定位标准确定与该预览请求对应的文件映射文件,并利用本地浏览器浏览该文件映射文件的可视化界面。
在本实现方式中,仅通过本地浏览器的内存完成对中间文件的转换、处理,以及后续直接基于浏览器内存实现小程序的预览,相对于现有技术中的编译方式,脱离了nodeJavaScript运行环境的限制,相对于基于nodeJavaScript运行环境提供的集中式编译,可以最大限度的节省资源消耗,提升编译效率,并且由于大容量二进制对象的加载均在本地浏览器内存中完成,不需要额外网络通信,避免了网络通信的延时与开销,从而实现了极高的文件加载速度与预览响应速度。
请参考图3,图3为本申请实施例提供的另一种小程序的预览方法的流程图,其中流程300包括以下步骤:
步骤301,响应于接收到目标小程序的测试请求,从该测试请求中提取编译代码。
步骤302,将编译代码转换为大容量二进制对象格式的中间文件,并基于本地浏览器的运行环境将该中间文件转换为待预览文件。
步骤303,利用本地浏览器浏览待预览文件的可视化界面。
以上步骤301-303与如上述图2所示实施例的步骤201-203一致,相同部分内容请参见上一实施例的相应部分,此处不再进行赘述。
步骤304,响应于接收到更新编译代码,根据该更新编译代码对中间文件进行更新。
在本实施例中,用于可以基于上述步骤303中生成的可视化界面获取小程序的编译过程、代码执行情况和小程序预览结果等内容,在确定存在需要修改、优化的内容后,可以针对该内容相应的生成用于对预览结果进行调整的更新编译代码,在上述执行主体获取到该更新编译代码后,根据该更新编译代码的内容对大容量二进制对象格式的中间文件进行相应调整。
步骤305,基于更新后的中间文件对待预览文件进行更新。
在本实施例中,在上述步骤304中完成对中间文件的更新后,根据更新后的中间文件生成新的待预览文件,以替换当前的待预览文件,以完成对待预览文件的更新。
步骤306,利用本地浏览器浏览更新后的待预览文件的可视化界面。
在本实施例中,该部分内容与上述图2所示实施例中的步骤203相似,对此不再赘述。
本实施例提供的小程序的预览方法,在上述图2所示实施例的基础上进一步的,在接收到更新编译代码后,完对应待预览的更新,以帮助用户根据可视化界面的显示结果进行实时、动态的编译,以提升用户对于小程序编译、预览的灵活性。
在上述任一实施例的基础上,本申请的一些可选的实施例中,在利用该本地浏览器浏览该待预览文件的可视化界面之前,还包括:获取该目标小程序对应的宿主程序的基础函数库。
具体的,为保证目标小程序中涉及的源代码以及与该目标小程序对应的编码代码可以顺利的被执行、预览,获取该目标小程序所寄宿的宿主程序对应的函数库,以防止在对目标小程序进行编译过程中,因所引用的函数缺乏响应的配置信息影响目标小程序的编译、预览,提升整个小程序的预览方法的可靠性。
在上述任一实施例的基础上,本申请的一些可选的实施例中,该将该编译代码转换为大容量二进制对象格式的中间文件,并基于本地浏览器的运行环境将该中间文件转换为待预览文件,包括:基于网络工作者进程,将该编译代码转换为大容量二进制对象格式的中间文件,并基于该网络工作者进程将该中间文件转换为待预览文件。其中,网络工作者进程Web Worker通常默认安装于浏览器中,以便于浏览器通过该网络工作者进程实现视频播放、网页界面加载和加载项配置的功能。
通常将生成中间文件和待预览文件的操作放在同一进程中依次执行,因此每当根据预览结果对编译代码进行修改时,就需要使用修改后的编译代码重新跑一边该进程,使得无法实时预览对编译代码的实时修改结果。为解决该问题,还可以利用Web Worker进程的特性,来创造多线程环境,创造出的多线程环境可包括一个主线程和多个分线程构成,主线程可将一些任务分配给分线程来执行,进而以相互隔离的方式分别执行不同的任务,从而排除干扰。例如将根据编译代码转换得到中间文件的操作放在第一分线程中执行、将根据中间文件转换得到待预览文件的操作放在第二分线程中执行,并设置第一分线程的输出将在主线程的帮助下被作为第二分线程的输入,使得在第二分线程的输出将直接被浏览器识别并预览的情况下,实时预览对编译代码的实时修改结果,且消除了发生数据冲突的潜在威胁。在提升修改效率的同时也提高了运行可靠性。
为加深理解,本申请还结合一个具体小程序场景,给出了一种具体的实现方案,以目标小程序为小程序为例,请参见如图4所示的流程400。
步骤401,响应于接收目标小程序的测试请求,从该测试请求中提取编译代码。
步骤402,基于本地浏览器的基于网络工作者进程将编译代码转换为大容量二进制对象格式的中间文件。
具体的,基于本地浏览器中的基于网络工作者进程将swan模板解析为小程序内核san框架可执行模板,并为小程序js文件添加可执行上下文、处理js文件间的依赖关系,接下来处理自定义组件,将自定义组件打包为allCusomComponents.swan.js文件,处理sjs文件,打包allRegisteredSJS.js文件,最终处理app.json文件,将静态资源文件路径由标准统一资源定位器(Uniform Resource Locator,简称URL)改为BLOB URL,得到大容量二进制对象格式的中间文件。
步骤403,基于本地浏览器的网络工作者进程将中间文件转换为待预览文件。
具体的,获取上述步骤402中得到的大容量二进制对象格式的中间文件,基于本地浏览器中的网络工作者进程将该中间文件转换为文件映射文件后储存。
步骤404,获取目标小程序对应的宿主程序的基础函数库。
步骤405,利用本地浏览器浏览待预览文件的可视化界面。
本申请通过将编译代码整合至大容量二进制对象格式的中间文件的方式对编码代码进行统一,以便于通过本地浏览器将该中间文件转换至待预览文件,最终使用本地浏览器直接基于待预览文件生成相应的可视化界面实现小程序的预览,以完全依靠本地浏览器实现小程序的编译、预览,节省开发资源、提升编译工作的并发能力的同时,提高用户编译时的响应速度。进一步的,考虑到通过同一进程依次生成中间文件和待预览文件的常见方式不便于呈现实时修改后的编译代码的预览结果,还可以将生成中间文件和待预览文件的操作分别置于相互隔离的两个进程来执行,使得对编译代码进行的实时修改在转换为新的中间文件时不影响待预览文件的正常预览效果,也消除了出现数据冲突的潜在风险。
进一步参考图5,作为对上述各图所示方法的实现,本申请提供了一种小程序的预览装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图5所示,本实施例的小程序的预览装置500可以包括:编译代码提取单元501、待预览文件生成单元502、可视化界面生成单元503。其中,编译代码提取单元501,被配置成响应于接收到目标小程序的测试请求,从该测试请求中提取编译代码;待预览文件生成单元502,被配置成将该编译代码转换为大容量二进制对象格式的中间文件,并基于本地浏览器的运行环境将该中间文件转换为待预览文件;可视化界面生成单元503,被配置成利用该本地浏览器浏览该待预览文件的可视化界面。
在本实施例中,小程序的预览装置500中:编译代码提取单元501、待预览文件生成单元502、可视化界面生成单元503的具体处理及其所带来的技术效果可分别参考图2对应实施例中的步骤201-203的相关说明,在此不再赘述。
在本实施例的一些可选的实现方式中,该小程序的预览装置500中还包括:函数库获取单元,被配置成当该目标小程序为目标小程序时,获取该目标小程序对应的宿主程序的基础函数库。
在本实施例的一些可选的实现方式中,该待预览文件生成单元502生成的待预览文件包括:文件映射文件;以及该可视化界面生成单元503进一步被配置成,响应于接收到预览请求,基于大容量二进制对象资源定位标准确定与该预览请求对应的文件映射文件;利用该本地浏览器浏览该文件映射文件的可视化界面。
在本实施例的一些可选的实现方式中,该小程序的预览装置500中还包括:中间文件更新单元,被配置成响应于接收到更新编译代码,根据该更新编译代码对该中间文件进行更新;待预览文件更新单元,被配置成基于更新后的中间文件对该待预览文件进行更新;以及可视化界面生成单元503进一步被配置成,利用该本地浏览器浏览更新后的待预览文件的可视化界面。
在本实施例的一些可选的实现方式中,该待预览文件生成单元502进一步被配置成,基于网络工作者进程,将该编译代码转换为大容量二进制对象格式的中间文件,并基于该网络工作者进程将该中间文件转换为待预览文件。
本实施例作为对应于上述方法实施例的装置实施例存在,本实施例提供的小程序的预览装置通过将编译代码整合至大容量二进制对象格式的中间文件的方式对编码代码进行统一,以便于通过本地浏览器将该中间文件转换至待预览文件,最终使用本地浏览器直接基于待预览文件生成相应的可视化界面实现小程序的预览,以完全依靠本地浏览器实现小程序的编译、预览,节省开发资源、提升编译工作的并发能力的同时,提高用户编译时的响应速度。
根据本申请的实施例,本申请还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图6示出了可以用来实施本申请的实施例的示例电子设备600的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图6所示,设备600包括计算单元601,其可以根据存储在只读存储器(ROM)602中的计算机程序或者从存储单元608加载到随机访问存储器(RAM)603中的计算机程序,来执行各种适当的动作和处理。在RAM 603中,还可存储设备600操作所需的各种程序和数据。计算单元601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
设备600中的多个部件连接至I/O接口605,包括:输入单元606,例如键盘、鼠标等;输出单元607,例如各种类型的显示器、扬声器等;存储单元608,例如磁盘、光盘等;以及通信单元609,例如网卡、调制解调器、无线通信收发机等。通信单元609允许设备600通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元601可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元601的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元601执行上文所描述的各个方法和处理,例如小程序的预览方法。例如,在一些实施例中,小程序的预览方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元608。在一些实施例中,计算机程序的部分或者全部可以经由ROM 602和/或通信单元609而被载入和/或安装到设备600上。当计算机程序加载到RAM 603并由计算单元601执行时,可以执行上文描述的小程序的预览方法的一个或多个步骤。备选地,在其他实施例中,计算单元601可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行小程序的预览方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本申请的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本申请的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决传统物理主机与虚拟专用服务器(VPS,Virtual Private Server)服务中存在的管理难度大,业务扩展性弱的缺陷。服务器也可以分为分布式系统的服务器,或者是结合了区块链的服务器。
根据本申请实施例的技术方案,通过将编译代码整合至大容量二进制对象格式的中间文件的方式对编码代码进行统一,以便于通过本地浏览器将该中间文件转换至待预览文件,最终使用本地浏览器直接基于待预览文件生成相应的可视化界面实现小程序的预览,以完全依靠本地浏览器实现小程序的编译、预览,节省开发资源、提升编译工作的并发能力的同时,提高用户编译时的响应速度。进一步的,考虑到通过同一进程依次生成中间文件和待预览文件的常见方式不便于呈现实时修改后的编译代码的预览结果,还可以将生成中间文件和待预览文件的操作分别置于相互隔离的两个进程来执行,使得对编译代码进行的实时修改在转换为新的中间文件时不影响待预览文件的正常预览效果,也消除了出现数据冲突的潜在风险。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。

Claims (13)

1.一种小程序预览方法,包括:
响应于接收到目标小程序的测试请求,从所述测试请求中提取编译代码;
将所述编译代码转换为大容量二进制对象格式的中间文件,并基于本地浏览器的运行环境将所述中间文件转换为待预览文件;
利用所述本地浏览器浏览所述待预览文件的可视化界面。
2.根据权利要求1所述的方法,其中,在利用所述本地浏览器浏览所述待预览文件的可视化界面之前,还包括:
获取所述目标小程序对应的宿主程序的基础函数库。
3.根据权利要求1所述的方法,其中,所述待预览文件包括:
文件映射文件;以及
所述利用所述本地浏览器浏览所述待预览文件的可视化界面,包括:
响应于接收到预览请求,基于大容量二进制对象资源定位标准确定与所述预览请求对应的文件映射文件;
利用所述本地浏览器浏览所述文件映射文件的可视化界面。
4.根据权利要求1所述的方法,在利用所述本地浏览器浏览所述待预览文件的可视化界面之后,还包括:
响应于接收到更新编译代码,根据所述更新编译代码对所述中间文件进行更新;
基于更新后的中间文件对所述待预览文件进行更新;
利用所述本地浏览器浏览更新后的待预览文件的可视化界面。
5.根据权利要求1-4所述的方法,其中,所述将所述编译代码转换为大容量二进制对象格式的中间文件,并基于本地浏览器的运行环境将所述中间文件转换为待预览文件,包括:
基于网络工作者进程,将所述编译代码转换为大容量二进制对象格式的中间文件,并基于所述网络工作者进程将所述中间文件转换为待预览文件。
6.一种小程序预览装置,包括:
编译代码提取单元,被配置成响应于接收到目标小程序的测试请求,从所述测试请求中提取编译代码;
待预览文件生成单元,被配置成将所述编译代码转换为大容量二进制对象格式的中间文件,并基于本地浏览器的运行环境将所述中间文件转换为待预览文件;
可视化界面生成单元,被配置成利用所述本地浏览器浏览所述待预览文件的可视化界面。
7.根据权利要求6所述的装置,还包括:
函数库获取单元,被配置成获取所述目标小程序对应的宿主程序的基础函数库。
8.根据权利要求6所述的装置,其中,所述待预览文件生成单元生成的所述待预览文件包括:
文件映射文件;以及
所述可视化界面生成单元进一步被配置成,响应于接收到预览请求,基于大容量二进制对象资源定位标准确定与所述预览请求对应的文件映射文件;
利用所述本地浏览器浏览所述文件映射文件的可视化界面。
9.根据权利要求6所述的装置,还包括:
中间文件更新单元,被配置成响应于接收到更新编译代码,根据所述更新编译代码对所述中间文件进行更新;
待预览文件更新单元,被配置成基于更新后的中间文件对所述待预览文件进行更新;以及
所述可视化界面生成单元进一步被配置成,利用所述本地浏览器浏览更新后的待预览文件的可视化界面。
10.根据权利要求6-9所述的装置,其中,所述待预览文件生成单元进一步被配置成,基于网络工作者进程,将所述编译代码转换为大容量二进制对象格式的中间文件,并基于所述网络工作者进程将所述中间文件转换为待预览文件。
11.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-5中任一项所述的小程序的预览方法。
12.一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行权利要求1-5中任一项所述的小程序的预览方法。
13.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-5中任一项所述的小程序的预览方法。
CN202110317024.XA 2021-03-24 2021-03-24 小程序的预览方法、相关装置及计算机程序产品 Pending CN113050940A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110317024.XA CN113050940A (zh) 2021-03-24 2021-03-24 小程序的预览方法、相关装置及计算机程序产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110317024.XA CN113050940A (zh) 2021-03-24 2021-03-24 小程序的预览方法、相关装置及计算机程序产品

Publications (1)

Publication Number Publication Date
CN113050940A true CN113050940A (zh) 2021-06-29

Family

ID=76515503

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110317024.XA Pending CN113050940A (zh) 2021-03-24 2021-03-24 小程序的预览方法、相关装置及计算机程序产品

Country Status (1)

Country Link
CN (1) CN113050940A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113361235A (zh) * 2021-06-30 2021-09-07 北京百度网讯科技有限公司 Html文件的生成方法、装置、电子设备及可读存储介质
CN114051046A (zh) * 2021-11-16 2022-02-15 北京百度网讯科技有限公司 云数据下发方法、相关装置及计算机程序产品
CN115086764A (zh) * 2022-05-08 2022-09-20 全芯(佛山)科技有限公司 一种web端预览短视频效果的方法及终端
CN115242779A (zh) * 2022-07-25 2022-10-25 京东方科技集团股份有限公司 基于小程序的文件传输方法、系统及电子设备

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113361235A (zh) * 2021-06-30 2021-09-07 北京百度网讯科技有限公司 Html文件的生成方法、装置、电子设备及可读存储介质
CN113361235B (zh) * 2021-06-30 2024-03-22 北京百度网讯科技有限公司 Html文件的生成方法、装置、电子设备及可读存储介质
CN114051046A (zh) * 2021-11-16 2022-02-15 北京百度网讯科技有限公司 云数据下发方法、相关装置及计算机程序产品
CN115086764A (zh) * 2022-05-08 2022-09-20 全芯(佛山)科技有限公司 一种web端预览短视频效果的方法及终端
CN115242779A (zh) * 2022-07-25 2022-10-25 京东方科技集团股份有限公司 基于小程序的文件传输方法、系统及电子设备
CN115242779B (zh) * 2022-07-25 2024-01-30 京东方科技集团股份有限公司 基于小程序的文件传输方法、系统及电子设备

Similar Documents

Publication Publication Date Title
CN113050940A (zh) 小程序的预览方法、相关装置及计算机程序产品
CN113010181B (zh) 一种深度学习框架之中算子的部署方法、装置及电子设备
JP2021096857A (ja) データ処理方法、装置、電子機器及び記憶媒体
CN113010827B (zh) 页面渲染方法、装置、电子设备以及存储介质
KR20210040850A (ko) 문서 분석 방법, 장치, 기기 및 저장 매체
CN113808231B (zh) 信息处理方法及装置、图像渲染方法及装置、电子设备
US11870867B2 (en) Method of processing service data, electronic device and storage medium
CN110895471A (zh) 安装包生成方法、装置、介质及电子设备
CN109582317B (zh) 用于调试寄宿应用的方法和装置
CN111767089A (zh) 加载文件的方法、装置、设备以及存储介质
CN115237436A (zh) 应用部署方法、装置、电子设备及可读存储介质
CN113138768B (zh) 应用程序包生成方法、装置、电子设备以及可读存储介质
US20210117170A1 (en) Wrapping method, registration method, device, and rendering apparatus
CN111767126A (zh) 分布式批量处理的系统和方法
CN111767059A (zh) 深度学习模型的部署方法、装置、电子设备和存储介质
CN111414154A (zh) 前端开发的方法、装置、电子设备和存储介质
CN112398669A (zh) 一种Hadoop部署方法和装置
CN113779122B (zh) 导出数据的方法和装置
CN112905225A (zh) 创建持续集成工具构建任务的方法和装置
CN110825622A (zh) 软件测试方法、装置、设备和计算机可读介质
CN114880020A (zh) 软件开发工具包管理方法、相关装置及计算机程序产品
CN104869167A (zh) 一种服务器和桌面虚拟应用的负载平衡系统
CN115102948A (zh) 地图瓦片的自动下载方法、装置、设备以及存储介质
CN114661274A (zh) 用于生成智能合约的方法和装置
CN114741294A (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