CN114647411A - 编程界面加载方法、装置、电子设备及存储介质 - Google Patents

编程界面加载方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN114647411A
CN114647411A CN202210349593.7A CN202210349593A CN114647411A CN 114647411 A CN114647411 A CN 114647411A CN 202210349593 A CN202210349593 A CN 202210349593A CN 114647411 A CN114647411 A CN 114647411A
Authority
CN
China
Prior art keywords
programming interface
intermediate state
file
files
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
Application number
CN202210349593.7A
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 Siming Qichuang Technology Co ltd
Original Assignee
Beijing Siming Qichuang 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 Siming Qichuang Technology Co ltd filed Critical Beijing Siming Qichuang Technology Co ltd
Priority to CN202210349593.7A priority Critical patent/CN114647411A/zh
Publication of CN114647411A publication Critical patent/CN114647411A/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/34Graphical or visual programming
    • 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
    • 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Abstract

本申请提供一种编程界面加载方法、装置、电子设备和存储介质,所述方法包括:在检测到编程界面进入指令之前,对加载所述编程界面需要的工程文件进行预加载,生成一个或多个中间态文件,并保存所述中间态文件;在检测到所述编程界面进入指令时,获取所述中间态文件,并根据所述中间态文件加载所述编程界面。这样,在需要加载编程界面时,无需再对配置文件进行相应的解析过程,可以直接获取通过预加载得到的中间态文件,进而利用这些中间态文件加载编程界面,从而减少了加载编程界面的时间,提高了用户体验。

Description

编程界面加载方法、装置、电子设备及存储介质
技术领域
本申请涉及计算机技术领域,具体而言,涉及一种编程界面加载方法、装置、电子设备及存储介质。
背景技术
随着编程学习的不断普及,越来越多的人开始学习编程。图形化编程通过将底层实现进行封装,用户仅需要拖拽编程组件,即可实现对编程题目的练习。现有的编程学习过程中,用户先学习编程相关的基础知识,然后系统提供编程题目,并加载集成开发环境(Integrated Development Environment,IDE)(该集成开发环境可以理解为编程界面),在图像化编程软件的编程界面中进行编程题目的练习。
然而,在加载图像化编程软件的编程界面的过程中,加载和解析工程文件耗时较长,从而导致编程界面加载时间较长,用户需要长时间等待,影响用户使用体验。
发明内容
本申请实施例的目的在于提供一种编程界面加载方法、装置、电子设备和存储介质,用以提高编程界面的加载速度。
第一方面,本申请提供一种编程界面加载方法,所述方法包括:在检测到编程界面进入指令之前,对加载所述编程界面需要的工程文件进行预加载,生成一个或多个中间态文件,并保存所述中间态文件;在检测到所述编程界面进入指令时,获取所述中间态文件,并根据所述中间态文件加载所述编程界面。
在上述实现过程中,通过在检测到编程界面进入指令之前,先对加载编程界面所需要的工程文件进行预加载,得到一个或多个中间态文件,保存这些中间态文件。这样,在需要加载编程界面时,无需再对工程文件进行相应的解析过程,可以直接获取通过预加载得到的中间态文件,进而利用这些中间态文件加载编程界面,从而减少了加载编程界面的时间,提高了用户体验。
在可选的实施方式中,所述对加载所述编程界面需要的工程文件进行预加载,生成一个或多个中间态文件,包括:对所述工程文件进行解析,生成第一中间态文件;其中,所述第一中间态文件为所述编程界面的描述文件。
在上述实现过程中,通过上述方式确定第一中间态文件,从而在后续检测到编程界面进入指令时,可以获取该第一中间态文件,根据第一中间态文件加载编程界面。这样,就减少了将工程文件解析为编程界面的描述文件(即第一中间态文件)的时间,提高了编程界面的加载速度。
在可选的实施方式中,所述对加载所述编程界面需要的工程文件进行预加载,生成一个或多个中间态文件,还包括:基于预设的解压库对所述工程文件进行解压,确定资源文件;根据所述第一中间态文件对所述资源文件进行反序列化解析,生成第二中间态文件;其中,所述第二中间态文件为所述加载所述编程界面所依赖的资源。
在上述实现过程中,通过上述方式确定第二中间态文件,在后续检测到编程界面进入指令时,可以获取该第二中间态文件,根据第二中间态文件加载编程界面。这样,就减少了确定加载所述编程界面所依赖的资源(即第二中间态文件)所需要的时间,提高了编程界面的加载速度。
在可选的实施方式中,所述对加载所述编程界面需要的工程文件进行预加载,生成一个或多个中间态文件,还包括:基于所述第一中间态文件和所述第二中间态文件确定所述编程界面中角色与资源的映射关系;根据所述映射关系和所述第二中间态文件生成第三中间态文件。
在上述实现过程中,通过上述方式确定第三中间态文件,在后续检测到编程界面进入指令时,可以获取该第三中间态文件,根据该第三中间态文件加载编程界面。这就减少了确定编程界面中角色与资源的映射关系,以及生成第三中间态文件所需要的时间,提高了编程界面的加载速度。
在可选的实施方式中,所述第一中间态文件为projectJson对象,所述第二中间态文件为data对象,所述第三中间态文件为target对象。
在可选的实施方式中,所述编程界面为scratch IDE的界面。
在可选的实施方式中,在对加载所述编程界面需要的工程文件进行预加载,生成一个或多个中间态文件之前,所述方法还包括:从服务器上请求所述工程文件,并保存所述工程文件。
在上述实现过程中,预先从服务器上请求加载编程界面需要的工程文件,并保存该工程文件,利用闲时提前获取到工程文件,以便在后续需要使用工程文件时,可以直接到工程文件,无需再下载,减少了加载编程界面的时间。
在可选的实施方式中,所述中间态文件及所述工程文件缓存于预设的数据库中。
第二方面,本申请提供一种编程界面加载装置,包括:生成模块,用于在检测到编程界面进入指令之前,对加载所述编程界面需要的工程文件进行预加载,生成一个或多个中间态文件并保存所述中间态文件;加载模块,用于在检测到所述编程界面进入指令时,获取所述中间态文件,并根据所述中间态文件加载所述编程界面。
在可选的实施方式中,所述生成模块具体用于对所述工程文件进行解析,生成第一中间态文件;其中,所述第一中间态文件为所述编程界面的描述文件。
在可选的实施方式中,所述生成模块具体用于基于预设的解压库对所述工程文件进行解压,确定资源文件;根据所述第一中间态文件对所述资源文件进行反序列化解析,生成第二中间态文件;其中,所述第二中间态文件为所述加载所述编程界面所依赖的资源。
在可选的实施方式中,所述生成模块具体用于基于所述第一中间态文件和所述第二中间态文件确定所述编程界面中角色与资源的映射关系;根据所述映射关系和所述第二中间态文件生成第三中间态文件。
在可选的实施方式中,所述第一中间态文件为projectJson对象,所述第二中间态文件为data对象,所述第三中间态文件为target对象。
在可选的实施方式中,所述编程界面为scratch IDE的界面。
在可选的实施方式中,所述装置还包括:请求模块,用于从服务器上请求所述工程文件,并保存所述工程文件。
在可选的实施方式中,所述中间态文件及所述工程文件缓存于预设的数据库中。
第三方面,本申请提供一种电子设备,包括处理器、通信接口、存储器和总线;所述处理器和所述存储器通过所述总线完成相互间的通信;所述通信接口用于与其他节点设备进行信令或数据的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如前述实施方式任一项所述的方法。
第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被计算机读取并运行时,执行如前述实施方式任一项所述的方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种编程界面加载方法的流程图;
图2为本申请实施例提供的另一种编程界面加载方法的流程图;
图3为本申请实施例提供的一种编程界面加载装置的结构框图;
图4为本申请实施例的电子设备的结构示意图。
图标:300-编程界面加载装置;301-生成模块;302-加载模块;303-请求模块;400-电子设备;401-处理器;402-通信接口;403-存储器;404-总线。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
实施例一:
为了提高编程界面的加载速度,本申请实施例中提供了一种编程界面加载方法。可以参见图1所示,图1为本申请实施例中提供的编程界面加载方法的流程图,该编程界面加载方法包括:
S101:在检测到编程界面进入指令之前,对加载编程界面需要的工程文件进行预加载,生成一个或多个中间态文件,并保存中间态文件。
S102:在检测到编程界面进入指令时,获取中间态文件,并根据中间态文件加载编程界面。
需要说明的是,本申请实施例中所提供的编程界面加载方法的执行主体可以为具有显示功能的电子设备,例如手机、平板电脑等,从而实现对加载后的编程界面进行显示;电子设备也可以为台式电脑的主机、服务器等,通过外接显示器的方式显示加载后的编程界面。
还需要说明的是,本申请中加载编程界面是指:接收到编程界面进入指令后,电子设备所执行的使编程界面得以显示的操作过程。
下面对上述方法进行详细介绍。
S101:在检测到编程界面进入指令之前,对加载编程界面需要的工程文件进行预加载,生成一个或多个中间态文件,并保存中间态文件。
需要说明的是,当电子设备收到编程界面进入指令,则表示用户需要进入编程界面进行操作。也就是说,当电子设备收到编程界面进入指令时,需要加载编程界面,为用户呈现出编程界面。
在一些实施方式中,编程界面进入指令可以由用户操作触发,例如:点击某一编程练习题目对应的进入按钮后,即触发编程界面进入指令;或者,在完成编程练习题目并退出当前练习题目的编程界面后,再次点击进入该编程界面的进入按钮后,即触发编程界面进入指令等。在另一些实施方式中,编程界面进入指令也可以通过预先设定的控制逻辑触发,例如:预先设定在某一页面显示完毕后,自动生成编程界面进入指令。本申请对编程界面进入指令的生成方式不做具体限定。
本申请实施例中,为了提高编程界面的加载速度,在检测到编程界面进入指令之前(即在需要加载编程界面之前),对加载编程界面需要的工程文件进行预加载,生成一个或多个中间态文件,并保存中间态文件。需要说明的是,上述过程在电子设备的后台执行,电子设备的显示区域显示用户当前浏览的页面,对用户来说是无感知的,用户并不会察觉,从而不会对用户的正常使用造成干扰。
在生成一个或多个中间态文件后,为了方便后续利用这些中间态文件,可以保存这些中间态文件。
在本申请实施例中,保存中间态文件的方式可以有多种。例如,在一些实施方式中,可以将中间态文件存储在电子设备的诸如硬盘等非易失性存储介质上,后续直接从该非易失性存储介质中获取中间态文件。而在另一些实施方式中,也可以将中间态文件缓存于预设的数据库中,从而便于在后续需要进行编程界面加载时,可以快速调用到中间态文件。其中,数据库可以为索引数据库(indexedDB),Mysql等,本申请对此不作具体限定。
举例来说,用户通过一台电脑学习图像化编程知识,学习内容可以分为基础知识学习(即通过看视频等方式学习相关的只是)和编程题目练习。在用户学习基础知识的过程中,电脑的显示区域显示用户进行基础知识学习的页面,而电脑后台可以执行上述S101,对加载编程界面需要的工程文件进行预加载,生成一个或多个中间态文件,并保存中间态文件。
可以理解,上述例子仅为本申请实施例提供的一种具体使用场景,本申请不以此为限,本申请实施例提供的编程界面加载方法可以应用于任何需要加载编程界面的场景。
通过上述方式,在需要加载编程界面之前,先对加载编程界面所需要的工程文件进行预加载,得到一个或多个中间态文件,保存这些中间态文件。在需要加载编程界面(即当电子设备收到编程界面进入指令)时,无需再对工程文件进行相应的解析过程,可以直接获取通过预加载得到的中间态文件,进而利用这些中间态文件加载编程界面,从而减少了加载编程界面的时间,提高了用户体验。
在对加载编程界面需要的工程文件进行预加载之前,需要先获取工程文件,因此,在上述S101之前,本申请实施例提供的编程界面加载方法还可以包括:
从服务器上请求工程文件,并保存工程文件。
应理解,加载编程界面需要的工程文件通常保存在服务器中,当需要加载编程界面时,从服务器上请求工程文件(即下载工程文件)。网络情况、服务器的负荷以及工程文件的大小均会影响加载编程界面的速度。由于上述步骤是在S101之前,即上述步骤也是在检测到编程界面进入指令之前进行的。因此,预先从服务器上请求加载编程界面需要的工程文件,并保存该工程文件,利用闲时提前获取到工程文件,以便在后续需要使用工程文件时,可以直接到工程文件,无需再下载,减少了加载编程界面的时间。
在一些其他的实施方式中,在需要获取工程文件时,电子设备也可以与USB、光盘等存储介质连接,从这些存储介质中获取工程文件,本申请对工程文件的获取方式不做具体限定。
此外,保存工程文件的方式可以与前述保存中间态文件的方式相同,为使说明书简洁,在此不做赘述。
在本申请实施例中,编程界面可以为scratch IDE的界面、Python IDE的界面等,但不作为限制。
为方便理解本方案,以下以编程界面为scratch IDE的界面为例,对上述内容进行介绍。
在采用scratch作为编程工具的场景中,编程界面为scratch IDE的界面。用于加载scratch IDE界面的工程文件为sb3文件,该sb3文件中包括加载scratch IDE界面需要各类素材(例如:图片素材、影音素材等)、素材与角色之间的对应关系等。
通过fetch请求向服务器请求sb3文件,sb3文件的数据类型为二进制大对象(binary large object,blob)格式。具体的,可以通过response.blob()这一指令获取blob格式的sb3文件。blob格式的文件具有方便保存,方便解析的优点。
以下对生成中间态文件的过程进行说明。
在本申请实施例的一种可选实施方式中,对加载所述编程界面需要的工程文件进行预加载,生成一个或多个中间态文件,包括如下内容:
对工程文件进行解析,生成第一中间态文件。
本实施方式中,第一中间态文件为编程界面的描述文件。
本申请实施方式中,在加载编程界面时,需要对工程文件进行一系列的解析处理,才能完成对编程界面的加载。为了减少加载时间,在检测到编程界面进入指令之前,对工程文件进行解析,解析出编程界面的描述文件,将该描述文件作为第一中间态文件。
依然以编程界面为scratch IDE的界面为例,对上述内容进行介绍。
获取到sb3文件(即工程文件)后,通过scratch-parser对sb3文件进行解析,生成projectJson对象(即第一中间态文件)。
通过上述方式生成第一中间态文件,从而在后续检测到编程界面进入指令时,可以直接获取该第一中间态文件,根据第一中间态文件加载编程界面,减少了将工程文件解析为编程界面的描述文件的时间,提高了编程界面的加载速度。
为了进一步提高编程界面的加载速度,在生成第一中间态文件之后,对加载所述编程界面需要的工程文件进行预加载,生成一个或多个中间态文件,包括如下内容:
基于预设的解压库对工程文件进行解压,确定资源文件;
根据第一中间态文件对资源文件进行反序列化解析,生成第二中间态文件。
本实施方式中,第二中间态文件为加载编程界面所依赖的资源。
本申请实施方式中,在加载编程界面时,除了解析工程文件确定编程界面的描述文件(即第一中间态文件)之外,还需要对工程文件解压确定加载编程界面所依赖的资源。因此,在生成第一中间态文件之后,基于预设的解压库对工程文件进行解压,确定资源文件。在确定资源文件后,根据描述文件对资源文件进行反序列化解析,从而生成加载所述编程界面所依赖的资源(即第二中间态文件)。
依然以编程界面为scratch IDE的界面为例,对上述内容进行介绍。
在确定projectJson对象(即第一中间态文件)之后,调用JSZip.loadAsync(解压库)对sb3文件(即工程文件)进行解压,生成zip对象(即资源文件),根据projectJson对象对zip对象进行反序列化解析,产出data对象(即第二中间态文件)。需要说明的是,由于zip对象无法进行保存,则需要根据projectJson对象对zip对象进行反序列化解析,生成可以保存的data对象作为第二中间态文件,以便后续可以利用data对象加载scratch IDE界面。
其中,data对象为加载scratch IDE界面所依赖的资源,包括音频资源、图片资源、svg动画资源等。
通过上述方式确定第二中间态文件,在后续检测到编程界面进入指令时,可以直接获取该第二中间态文件,根据第二中间态文件加载编程界面,减少了确定加载所述编程界面所依赖的资源(即第二中间态文件)所需要的时间,提高了编程界面的加载速度。
为了进一步提高编程界面的加载速度,在生成第二中间态文件之后,对加载所述编程界面需要的工程文件进行预加载,生成一个或多个中间态文件,包括如下内容:
基于第一中间态文件和第二中间态文件确定编程界面中角色与资源的映射关系;
根据映射关系和第二中间态文件生成第三中间态文件。
本申请实施方式中,在加载编程界面过程中,确定描述文件(即第一中间态文件)和加载编程界面所依赖的资源(即第二中间态文件)之后,需要进一步确定编程界面中角色与资源的映射关系,并根据该资源关系和加载编程界面所依赖的资源生成加载编程界面的第三中间态文件。
依然以编程界面为scratch IDE的界面为例,对上述内容进行介绍。
在确定projectJson对象(即第一中间态文件)和data对象(即第二中间态文件)之后,根据projectJson对象中对编程界面的描述信息对scratch角色进行遍历,确定出data对象中的资源与scratch角色的对应关系,根据该对应关系将data对象转化为target对象(即第三中间态文件),以便后续可以利用target对象加载scratch IDE界面。
通过上述方式确定第三中间态文件,在后续检测到编程界面进入指令时,可以直接获取该第三中间态文件,根据第三中间态文件加载编程界面,减少了确定编程界面中角色与资源的映射关系(即第二中间态文件)所需要的时间,提高了编程界面的加载速度。
在一种可选的实施方式中,在生成第一中间态文件、第二中间态文件和第三中间态文件之后,为了方便后续利用这些中间态文件,可以将第一中间态文件、第二中间态文件和第三中间态文件保存在索引数据库中。利用indexedDB响应速度快的优势,在后续检测到编程界面进入指令时,可以较快的从indexedDB中取出中间态文件加载编程界面,提高编程界面的加载速度。
S102:在检测到编程界面进入指令时,获取中间态文件,并根据中间态文件加载所述编程界面。
需要说明的是,在实际应用过程中,用于预加载的时间可能不同,在一些实施方式中,若用于预加载的时间较短,仅够生成第一中间态文件,电子设备就检测到编程界面进入指令,则获取保存的第一中间态文件,根据第一中间态文件加载编程界面。可以理解,在该实施方式中,加载编程界面时还需要进一步生成第二中间态文件、第三中间态文件,进而根据第三中间态文件加载编程界面。
若用于预加载的时间较长,在预加载过程中,生成了第一中间态文件和第二中间态文件,则获取保存的第一中间态文件和第二中间态文件,根据第一中间态文件和第二中间态文件加载编程界面。可以理解,在该实施方式中,加载编程界面时只需要进一步生成第三中间态文件,进而根据第三中间态文件加载编程界面。
若用于预加载的时间足够长,在预加载过程中,生成了第一中间态文件、第二中间态文件和第三中间态文件,则可以直接根据第三中间态文件加载编程界面。
根据第三中间态文件加载编程界面的过程可以包括在对编程界面进行渲染,并在电子设备的显示器上显示出对应的编程界面。具体的渲染过程以及显示过程请参考现有技术,在此不过多赘述。
综上所述,本申请实施例提供一种编程界面加载方法,通过在需要加载编程界面之前,先对加载编程界面所需要的工程文件进行预加载,得到一个或多个中间态文件,保存这些中间态文件。在需要加载编程界面(即当电子设备收到编程界面进入指令)时,无需再对工程文件进行相应的解析过程,可以直接获取通过预加载得到的中间态文件,进而利用这些中间态文件加载编程界面,从而减少了加载编程界面的时间,提高了用户体验。
实施例二:
本实施例在实施例一的基础上,以图2为例,为本申请做进一步示例说明。
本实施例以编程工具scratch为例,进行说明。
在检测到编程界面进入指令之前(对应图2中的预加载),首先,通过fetch请求向服务器请求sb3文件,sb3文件的数据类型为blob,将sb3文件以blob形式缓存在indexedDB中。其次,将sb3文件通过scratch-parser对sb3文件进行解析,获取projectJson对象,并将projectJson对象缓存在indexedDB中。然后,调用JSZip.loadAsync对sb3文件进行解压,确定zip对象。确定zip对象后,根据projectJson对象对zip对象进行反序列化解析,确定出data对象,并将data对象缓存在indexedDB中。最后,根据projectJson对象中对编程界面的描述信息对scratch角色进行遍历,确定出data对象中的资源与scratch角色的对应关系,根据该对应关系将data对象转化为target对象,并将target对象缓存在indexedDB中。
在检测到编程界面进入指令时(对应图2中的正式加载),从indexedDB中获取target对象,根据target对象对编程界面进行渲染,并在电子设备的显示器上显示出对应的编程界面,完成对编程界面的加载。
通过上述方案,在检测到编程界面进入指令之前,对加载编程界面所需要的工程文件进行预加载,逐步生成target对象,并将target对象保存在indexedDB中。在检测到编程界面进入指令时,直接从indexedDB获取target对象,利用target对象加载编程界面,无需再对工程文件进行相应的解析过程,从而减少了在检测到编程界面进入指令后加载编程界面的时间,提高了用户体验。
实施例三:
基于同一发明构思,本申请实施例中还提供一种编程界面加载装置。请参阅图3,图3为本申请实施例提供的一种编程界面加载装置的结构框图,该编程界面加载装置300可以包括:
生成模块301,用于在检测到编程界面进入指令之前,对加载所述编程界面需要的工程文件进行预加载,生成一个或多个中间态文件并保存所述中间态文件;
加载模块302,用于在检测到所述编程界面进入指令时,获取所述中间态文件,并根据所述中间态文件加载所述编程界面。
在可选的实施方式中,所述生成模块301具体用于对所述工程文件进行解析,生成第一中间态文件;其中,所述第一中间态文件为所述编程界面的描述文件。
在可选的实施方式中,所述生成模块301具体用于基于预设的解压库对所述工程文件进行解压,确定资源文件;根据所述第一中间态文件对所述资源文件进行反序列化解析,生成第二中间态文件;其中,所述第二中间态文件为所述加载所述编程界面所依赖的资源。
在可选的实施方式中,所述生成模块301具体用于基于所述第一中间态文件和所述第二中间态文件确定所述编程界面中角色与资源的映射关系;根据所述映射关系和所述第二中间态文件生成第三中间态文件。
在可选的实施方式中,所述第一中间态文件为projectJson对象,所述第二中间态文件为data对象,所述第三中间态文件为target对象。
在可选的实施方式中,所述编程界面为scratch IDE的界面。
在可选的实施方式中,所述装置还包括:请求模块303,用于从服务器上请求所述工程文件,并保存所述工程文件。
在可选的实施方式中,所述中间态文件及所述工程文件缓存于预设的数据库中。
实施例四:
请参阅图4,图4为本申请实施例的电子设备400的结构示意图,该电子设备400包括:至少一个处理器401,至少一个通信接口402,至少一个存储器403和至少一个总线404。其中,总线404用于实现这些组件直接的连接通信,通信接口402用于与其他节点设备进行信令或数据的通信,存储器403存储有处理器401可执行的程序指令。当电子设备400运行时,处理器401与存储器403之间通过总线404通信,程序指令被电子设备400执行时,实现上述编程界面加载方法。
该电子设备400还可以包括显示器,显示器用于显示加载后的编程界面。
处理器401可以是一种集成电路芯片,具有信号处理能力。上述处理器401可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(NetworkProcessor,NP)等;还可以是数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。其可以实现或者执行本申请实施例中公开的各种方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器403可以包括但不限于随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。
可以理解,图4所示的结构仅为示意,电子设备400还可包括比图4中所示更多或者更少的组件,或者具有与图4所示不同的配置。图4中所示的各组件可以采用硬件、软件或其组合实现。于本申请实施例中,电子设备400可以是,但不限于台式机、笔记本电脑、智能手机、智能穿戴设备、车载设备等实体设备,还可以是虚拟机等虚拟设备。另外,电子设备400也不一定是单台设备,还可以是多台设备的组合,例如服务器集群,等等。
此外,本实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被计算机读取并运行时,执行如上述实施例中的编程界面加载方法。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
需要说明的是,功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (11)

1.一种编程界面加载方法,其特征在于,所述方法包括:
在检测到编程界面进入指令之前,对加载所述编程界面需要的工程文件进行预加载,生成一个或多个中间态文件,并保存所述中间态文件;
在检测到所述编程界面进入指令时,获取所述中间态文件,并根据所述中间态文件加载所述编程界面。
2.根据权利要求1所述的方法,其特征在于,所述对加载所述编程界面需要的工程文件进行预加载,生成一个或多个中间态文件,包括:
对所述工程文件进行解析,生成第一中间态文件;其中,所述第一中间态文件为所述编程界面的描述文件。
3.根据权利要求2所述的方法,其特征在于,所述对加载所述编程界面需要的工程文件进行预加载,生成一个或多个中间态文件,还包括:
基于预设的解压库对所述工程文件进行解压,确定资源文件;
根据所述第一中间态文件对所述资源文件进行反序列化解析,生成第二中间态文件;其中,所述第二中间态文件为所述加载所述编程界面所依赖的资源。
4.根据权利要求3所述的方法,其特征在于,所述对加载所述编程界面需要的工程文件进行预加载,生成一个或多个中间态文件,还包括:
基于所述第一中间态文件和所述第二中间态文件确定所述编程界面中角色与资源的映射关系;
根据所述映射关系和所述第二中间态文件生成第三中间态文件。
5.根据权利要求4所述的方法,其特征在于,所述第一中间态文件为projectJson对象,所述第二中间态文件为data对象,所述第三中间态文件为target对象。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述编程界面为scratch IDE的界面。
7.根据权利要求1-5任一项所述的方法,其特征在于,在对加载所述编程界面需要的工程文件进行预加载,生成一个或多个中间态文件之前,所述方法还包括:
从服务器上请求所述工程文件,并保存所述工程文件。
8.根据权利要求1-5任一项所述的方法,其特征在于,所述中间态文件及所述工程文件缓存于预设的数据库中。
9.一种编程界面加载装置,其特征在于,包括:
生成模块,用于在检测到编程界面进入指令之前,对加载所述编程界面需要的工程文件进行预加载,生成一个或多个中间态文件并保存所述中间态文件;
加载模块,用于在检测到所述编程界面进入指令时,获取所述中间态文件,并根据所述中间态文件加载所述编程界面。
10.一种电子设备,其特征在于,包括:处理器、通信接口、存储器和总线;所述处理器和所述存储器通过所述总线完成相互间的通信;所述通信接口用于与其他节点设备进行信令或数据的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1-8任一项所述的编程界面加载方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被计算机读取并运行时,执行如权利要求1-8任一项所述的编程界面加载方法。
CN202210349593.7A 2022-04-02 2022-04-02 编程界面加载方法、装置、电子设备及存储介质 Pending CN114647411A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210349593.7A CN114647411A (zh) 2022-04-02 2022-04-02 编程界面加载方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210349593.7A CN114647411A (zh) 2022-04-02 2022-04-02 编程界面加载方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN114647411A true CN114647411A (zh) 2022-06-21

Family

ID=81996050

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210349593.7A Pending CN114647411A (zh) 2022-04-02 2022-04-02 编程界面加载方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN114647411A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114996609A (zh) * 2022-08-04 2022-09-02 山东捷瑞数字科技股份有限公司 一种基于浏览器数据库的离线图像缓存方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103246539A (zh) * 2013-05-21 2013-08-14 北京大学 基于用户使用习惯的gis系统模块加载方法
US20160156732A1 (en) * 2014-11-27 2016-06-02 International Business Machines Corporation Web Page Pre-loading Optimization
CN110727459A (zh) * 2019-10-11 2020-01-24 网易(杭州)网络有限公司 游戏中界面主题的打包、显示方法和装置
CN111569431A (zh) * 2019-02-18 2020-08-25 厦门雅基软件有限公司 游戏引擎资源处理方法、电子设备及计算机可读存储介质
CN112433792A (zh) * 2020-11-12 2021-03-02 金蝶软件(中国)有限公司 界面加载方法、装置、计算机设备和存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103246539A (zh) * 2013-05-21 2013-08-14 北京大学 基于用户使用习惯的gis系统模块加载方法
US20160156732A1 (en) * 2014-11-27 2016-06-02 International Business Machines Corporation Web Page Pre-loading Optimization
CN111569431A (zh) * 2019-02-18 2020-08-25 厦门雅基软件有限公司 游戏引擎资源处理方法、电子设备及计算机可读存储介质
CN110727459A (zh) * 2019-10-11 2020-01-24 网易(杭州)网络有限公司 游戏中界面主题的打包、显示方法和装置
CN112433792A (zh) * 2020-11-12 2021-03-02 金蝶软件(中国)有限公司 界面加载方法、装置、计算机设备和存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114996609A (zh) * 2022-08-04 2022-09-02 山东捷瑞数字科技股份有限公司 一种基于浏览器数据库的离线图像缓存方法及系统
CN114996609B (zh) * 2022-08-04 2022-11-18 山东捷瑞数字科技股份有限公司 一种基于浏览器数据库的离线图像缓存方法及系统

Similar Documents

Publication Publication Date Title
US10325009B2 (en) Method and apparatus for using custom component parsing engine to parse tag of custom component
US11210109B2 (en) Method and system for loading resources
CN106294658B (zh) 网页快速展示方法和装置
US20140222947A1 (en) Method and apparatus for browsings webpages, and storage medium
CN111639289A (zh) 一种网页加载方法及装置
CN110309475B (zh) 一种页面展现方法、装置、终端设备及存储介质
CN110865888A (zh) 一种资源加载方法、装置、服务器及存储介质
CN109684008B (zh) 卡片渲染方法、装置、终端及计算机可读存储介质
US20220035655A1 (en) Method and Device for Anonymous Page Management, Terminal Device, and Readable Storage Medium
CN109684573B (zh) 目标图片显示方法及装置、存储介质、电子设备
US10768947B2 (en) Method for interface refresh synchronization,terminal device, and non-transitory computer-readable storage medium
US11930096B2 (en) Systems and methods for rendering interactive web pages
US20230033164A1 (en) Webpage image monitoring method and apparatus, electronic device, and computer-readable storage medium
CN111444453A (zh) 页面回传数据处理方法及其装置
CN111414207A (zh) 一种页面搭建方法、装置和设备
CN114647411A (zh) 编程界面加载方法、装置、电子设备及存储介质
CN108268298B (zh) 桌面图标的生成方法、装置、存储介质及电子设备
CN110717126A (zh) 页面浏览方法、装置、电子设备及计算机可读存储介质
CN111124627A (zh) 应用程序的调起者确定方法、装置、终端及存储介质
CN115758004A (zh) 网页表格的展示方法、装置、计算机可读介质及电子设备
CN112433778B (zh) 一种移动设备页面显示方法、装置、电子设备及存储介质
US11438403B2 (en) Page presentation method and system, computer system, and computer readable medium
CN114490266A (zh) 一种数据采集方法、装置、设备及存储介质
CN113849195A (zh) 应用程序加载方法、装置、存储介质以及终端
CN114237743A (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