表单渲染方法、装置、设备及存储介质与流程

文档序号:31884760发布日期:2022-10-22 00:03阅读:44来源:国知局
表单渲染方法、装置、设备及存储介质与流程

1.本技术涉及表单引擎技术领域,具体而言,涉及一种表单渲染方法、装置、设备及存储介质。


背景技术:

2.表单引擎可称为表单流程、流程表单和工作流表单,是基于web界面上可视化编辑的表单设计系统。随着低代码或者无代码越来越应用广泛,对应的表单引擎的使用无可避免,表单引擎又由多个元组件构建,在现有市场元组件的更新发布部署,无论是集中化部署还是单独部署缓存以提高读取效率都成为一种必要的技术手段。
3.目前,在表单引擎上进行表单渲染,由于每一次的表单渲染都要去后台服务器上读取,因此会面临对应的网络io资源的消耗,当组件数量过多或过大则会增加向服务器发起请求的时间,大大降低表单渲染效率。


技术实现要素:

4.有鉴于此,本技术实施例的目的在于提供一种表单渲染方法、装置、设备及存储介质,通过在访问表单页面时,首先判断浏览器内存中是否缓存有该表单页面的组件配置信息,如果有缓存,则直接从浏览器内存读取组件配置信息,并基于该组件配置信息进行表单渲染,实现了通过客户端内存获取组件信息而非实时请求服务器获取,提高了读取效率,从而解决了上述“需面临对应的网络io资源的消耗,大大降低表单渲染效率”的技术问题。
5.第一方面,本技术实施例提供一种表单渲染方法,所述方法包括:获取表单页面的用户访问请求;判断浏览器内存中是否缓存有所述表单页面的组件配置信息;其中,所述组件配置信息包括组件标识、组件版本号、组件更新时间、组件描述信息;若所述浏览器内存中缓存有所述表单页面的组件配置信息,则从所述浏览器内存读取所述组件配置信息,并基于所述组件配置信息对所述表单页面进行表单渲染。
6.在上述实现过程中,通过直接去客户端内存获取组件配置信息而非实时请求获取,即避免了每次页面需要组件信息的时候都需要向服务端请求交互,而是提前判断是否缓存在内存中,进而直接在内存中直接读取,避免了面临网络io资源的大量消耗,提升了用户的交互感受,提高了读取效率的同时,保证了表单渲染效率。
7.可选地,所述判断浏览器内存中是否缓存所述表单页面的组件配置信息,包括:读取浏览器内存中的全局变量;根据所述全局变量是否赋值,确定浏览器内存中是否缓存表单页面的组件配置信息。
8.在上述实现过程中,浏览器内存中的配置有无判断是根据一个全局变量是否有值来判定,方便快捷,提高了判别效率,进而更快确定是否可以直接去内存端读取还是后续从服务端获取更新。
9.可选地,所述判断浏览器内存中是否缓存所述表单页面的组件配置信息之前,所述方法还包括:轮训访问服务器端变更组件的组件配置信息;判断所述变更组件的组件配
置信息与所述浏览器内存中对应的组件配置信息更新时间是否一致;若不一致,将所述变更组件的组件配置信息更新到所述浏览器内存中。
10.在上述实现过程中,轮训机制通过比对更新时间可以检测出服务器端目录组件的配置更新,存在更新时则返回对应变动组件的组件配置信息,并更新到客户端的浏览器内存缓存中去,提高了客户端内存中的组件实时更新效果。
11.可选地,所述轮训访问的间隔时间为10s一次。
12.在上述实现过程中,10s一次轮训请求使得请求不会太频繁,用户感知也比较适中,提升了用户的交互感受,提高了更新效率。
13.可选地,所述从所述浏览器内存读取所述组件配置信息,并基于所述组件配置信息对所述表单页面进行表单渲染,包括:从所述浏览器内存读取多个组件对应的所述组件配置信息;从所述组件配置信息解析出所述多个组件的样式、所述多个组件的事件、以及所述多个组件的三方联动关系;基于所述多个组件的样式、所述多个组件的事件、以及所述多个组件的三方联动关系,对所述表单页面进行表单渲染。
14.在上述实现过程中,通过在内存中直接读取多个组件的组件配置关系渲染表单,相比于去服务端获取组件配置关系,避免了网络io资源的大量消耗,提升了用户的交互感受,进一步提高了表单渲染效率。针对多组件单独部署时此种方式能够大大减少io交互,有效地提高了多组件的读取效率。
15.可选地,所述判断浏览器内存中是否缓存所述表单页面的组件配置信息之后,所述方法还包括:若所述浏览器内存中未缓存有所述表单页面的组件配置信息,则从服务器端获取所述表单页面全部组件更新的组件配置信息;将所述更新的组件配置信息更新到所述浏览器内存中。
16.在上述实现过程中,通过判断到内存中未缓存组件配置信息,进而从服务器端获取组件信息,可以实现组件的服务器部署用户端自动更新发现,根据组件更新的信息来确定此次发布组件的作用域,可以实现局部性的组件更新,为组件配置信息的更新和缓存提供了必要条件,提升了用户的交互感受。
17.可选地,所述将所述更新的组件配置信息更新到所述浏览器内存中,包括:根据所述组件配置信息的版本号大小,倒序排列所述组件配置信息;将倒序排列后,版本号排列在第一个的组件配置信息更新到所述浏览器内存中。
18.在上述实现过程中,通过利用版本号的大小来倒序获取第一个最新版本组件,提高了组件更新效率。
19.第二方面,本技术实施例提供了一种表单渲染装置,所述装置包括:获取模块,用于获取表单页面的用户访问请求;判断缓存模块,用于判断浏览器内存中是否缓存有所述表单页面的组件配置信息;其中,所述组件配置信息包括组件标识、组件版本号、组件更新时间、组件描述信息;渲染模块,用于若所述浏览器内存中缓存有所述表单页面的组件配置信息,则从所述浏览器内存读取所述组件配置信息,并基于所述组件配置信息对所述表单页面进行表单渲染。
20.第三方面,本技术实施例还提供一种电子设备,包括:处理器、存储器,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述机器可读指令被所述处理器执行时执行上述的方法的步骤。
21.第四方面,本技术实施例提供一种计算机可读存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述的方法的步骤。
22.为使本技术的上述目的、特征和优点能更明显易懂,下文特举实施例,并配合所附附图,作详细说明如下。
附图说明
23.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
24.图1为本技术实施例提供的一种表单渲染方法的流程图;
25.图2为本技术实施例提供的一种组件更新和缓存方法流程示意图;
26.图3为本技术实施例提供的表单渲染装置的功能模块示意图;以及
27.图4为本技术实施例提供表单渲染装置的电子设备的方框示意图。
28.图标:210-获取模块;220-判断缓存模块;230-渲染模块;300-电子设备;311-存储器;312-存储控制器;313-处理器;314-外设接口;315-输入输出单元;316-显示单元。
具体实施方式
29.下面将结合本技术实施例中附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本技术实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本技术的实施例的详细描述并非旨在限制要求保护的本技术的范围,而是仅仅表示本技术的选定实施例。基于本技术的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。
30.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
31.在介绍本技术前,首先对本技术涉及的术语作简要介绍:
32.流程开放平台表单引擎:表单的配置信息可以由用户在流程开放平台的表单设计器中编辑产生,也可以由第三方业务系统根据流程开放平台的协议自动化的构建出来。每一个表单都是一份各个组件组成的json schema,表单设计器的输出是一份描述表单字段的json schema,表单设计完成后json schema将被存储到数据库中。表单发布后,前端渲染器再根据json schema渲染表单。表单中每一个组件对应schema数组中的一个对象,该组件的所有字段的信息都是存储在对象中,所以每次对表单的组件增删都是增删json schema
对应的对象,修改具体组件的属性则是修改对应的对象。
33.表单设计器:主要是提供一个可视化界面,让用户能够通过所见即所得的方式,快速编辑出可被解析渲染的json schema。
34.本技术发明人注意到:在表单引擎的表单设计器进行表单渲染时,由于每一次的表单渲染都要去后台服务器上读取,因此会面临对应的网络io资源的消耗,当组件数量过多或过大则会增加向服务器发起请求的时间,大大降低表单渲染效率。因此,基于上述现有技术缺陷,将表单渲染读取的位置进行了调整,本技术提出了一种表单渲染方法,具体介绍如下:
35.请参阅图1,图1为本技术实施例提供的一种表单渲染方法的流程图。该方法可包括:步骤100、步骤120、步骤1401、以及步骤1402。
36.步骤100:获取表单页面的用户访问请求;
37.步骤120:判断浏览器内存中是否缓存有表单页面的组件配置信息;其中,组件配置信息包括组件标识、组件版本号、组件更新时间、组件描述信息;
38.若浏览器内存中缓存有表单页面的组件配置信息,则执行步骤1401:从浏览器内存读取组件配置信息;步骤1402:并基于组件配置信息对表单页面进行表单渲染。
39.示例性地,表单可由多个用户输入类组件和基础信息类组件组成,用户输入类组件可包含多种形式:文本、数字、单选,多选,附件以及明细等,基础信息类组件可包含多种形式:姓名,工号,公司主体,账号,办公地点等。浏览器内存中缓存的是表单组件的组件配置信息,该组件配置信息可以具体包括:标识每一个组件唯一性的标识号、组件的版本号信息、组件更新时间、以及描述组件布局、样式、联动等属性信息。
40.当用户打开表单页面,即发起访问请求时,页面开始初始化,在进行页面初始化时,可从配置服务端读取配置引擎生成并保存的页面配置信息,根据读取的页面配置信息,进而确定该页面中包含的组件标识;当判断浏览器内存中缓存有表单页面的组件配置信息,则直接在表单初始化的时候,根据表单中的每个组件标识去内存缓存中读取对应的组件配置信息,进而渲染到dom模板或html页面上。
41.通过上述去客户端内存获取组件配置信息而非实时请求获取,即每次页面需要组件信息的时候都无需向服务端请求交互,而是提前判断是否缓存在内存中,进而直接在内存中直接读取,避免了面临网络io资源的大量消耗,提升了用户的交互感受,提高了读取效率的同时,保证了表单渲染效率。
42.在一个实施例中,步骤120可以包括:步骤121、步骤122。
43.步骤121:读取浏览器内存中的全局变量;
44.步骤122:根据全局变量是否赋值,确定浏览器内存中是否缓存表单页面的组件配置信息。
45.示例性地,全局变量可以是表单页面包含组件对应的所有表单参数隶属的共同变量,例如:定义components作为全局变量对象,那么缓存是放置在全局变量components中,所有的组件信息也在此变量中。当表单渲染时,表单所用到的组件则是从全局变量components去获取,而非实时去查询,只有无全局变量时才从后台数据中获取。如果components被赋值,表示浏览器内存中缓存有表单页面的组件配置信息,如果components未赋值,表示浏览器内存中暂未缓存表单页面的组件配置信息。
46.可选地,如果将components直接赋值给表单页面的工作流组件,这样在待展示表单页面中监测到对工作流组件的操作指令时,将调用预先封装的数据获取接口,从内存端获取components,便可以得到需要表单引擎传输给工作流引擎的流程数据。
47.上述过程中,浏览器内存中的配置有无判断是根据一个全局变量是否有值来判定,方便快捷,提高了判别效率,进而更快确定是否可以直接去内存端读取还是后续从服务端获取更新。
48.在一个实施例中,步骤120之前,该方法还包括:步骤110、步骤111、步骤112。
49.步骤110:轮训访问服务器端变更组件的组件配置信息;
50.步骤111:判断变更组件的组件配置信息与浏览器内存中对应的组件配置信息更新时间是否一致;
51.步骤112:若不一致,将变更组件的组件配置信息更新到浏览器内存中。
52.示例性地,轮训方式可以是:客户端向服务端发送长轮训http请求,超时时间60秒,当超时后返回客户端一个304httpstatus,表明配置没有变更,客户端继续这个步骤重复发起请求,当有新的发布配置的时候,服务端会调用deferredresult.setresult返回200状态码,然后轮训请求会立即返回(不会超时),客户端收到响应结果后,会发起请求获取变更后的组件配置信息。变更组件可以是:由于每个组件在组件库中可能存在多个版本,当用户在进行表单渲染时选择指定版本安装后,该组件会被下载到服务器端的指定组件目录处,因此变更组件可以指服务器端指定组件目录出有变动、有更新的组件。
53.首次访问时内存无缓存,这时候有可能用户还没有访问具体表单,可以通过访问页面触发轮训,提前将组件配置信息装载进缓存中,因此访问到具体表单时,就可以直接从内存中获取组件配置信息,从而提高加载效率。
54.如图2所示,当轮训取到服务器的配置信息时,则比较最新的组件更新日期是否和内存中的相同,相同则不做处理,不相同则更新内存以保证下一次从内存中读取的组件信息是最新的。轮训时获取到组件存在增量变更时,则更新内存中的组件更新日期,此更新日期在安装组件信息时则会更新到组件目录中。当请求到组件信息更新日期和浏览器内存不一致时则更新内存里的组件配置信息,其具体可包括:版本号信息、更新日期,原则上组件标识是唯一的在更新时不会存在覆盖组件标识。
55.轮训机制通过比对更新时间可以检测出服务器端目录组件的版本号更新,存在更新时则取最新版本号,返回对应变动组件的组件配置信息,并更新到客户端的浏览器内存缓存中去,提高了客户端内存中的组件实时更新效果。
56.在一个实施例中,轮训访问的间隔时间为10s一次。
57.示例性地,轮训(settimeinterval:定时刷新接口来获取数据)访问的间隔时间是可以调整的,可以是除了10s外的其他值,例如5s、6s、7s、8s

15s

60s,最多不超过预设轮训超时时间(例如1分钟),如果1分钟之内没有可用数据,则该请求服务器响应失败,不包含数据而返回。10s一次轮训请求使得请求不会太频繁,用户感知也比较适中,提升了用户的交互感受,提高了更新效率。
58.在一个实施例中,步骤140可以包括:步骤141、步骤142、步骤143。
59.步骤141:从浏览器内存读取多个组件对应的组件配置信息;
60.步骤142:从组件配置信息解析出多个组件的样式、多个组件的事件、以及多个组
件的三方联动关系;
61.步骤143:基于多个组件的样式、多个组件的事件、以及多个组件的三方联动关系,对表单页面进行表单渲染。
62.示例性地,组件事件可用于组件与组件间的通信,事件具体可用于子组件向父组件传递数据,可传递任意数据。联动关系可以是:一个组件的值发生变化了,另一个组件的值也需要随之产生变化,这就是一种联动关系。
63.应当理解:每一个表单都是一份各个组件组成的json schema,表单设计器的输出是一份描述表单字段的json schema,表单设计完成后json schema将被存储到数据库中。表单发布后,前端渲染器再根据json schema渲染表单。表单中每一个组件对应schema数组中的一个对象,该组件的所有字段的信息都是存储在对象中,所以每次对表单的组件增删都是增删json schema对应的对象,修改具体组件的属性则是修改对应的对象。
64.在表单渲染时除了需要描述组件类型外,还需要描述组件本身的行为。例如:单选组件的下拉选项是手动添加,还是设置接口拉取;单行文本组件的值是由接口获取,还是用户填写,是否必填,是否加密等。某些业务场景下还需要添加更加复杂的设置,比如各个组件之间有没有内容联动(用户在一个组件中输入了内容之后,是否需要自动地填充或修改另外一个组件的内容),有没有显隐联动(一个组件的显隐由另外一个或多个组件控制,用户在一个组件中输入了内容之后,是否需要自动地控制另一个组件显示或隐藏)。有了这些组件类型、组件行为、组件联动关系、组件事件等描述后,表单渲染器才能根据schema渲染出符合预期的表单。
65.每个表单由一个或者多个表单组件构建而成,一个表单的展现效果取决于组件的展示内容,因此可以从浏览器内存读取多个组件对应的组件配置信息,读取每一个组件的标识、版本号信息、更新时间、以及描述组件布局、样式、联动等属性信息,并解析出多个组件相互之间的联动关系、事件、样式、组件配置规则,对每一个组件给予相应的值,并创建对应的组件行为,进而利用表单渲染器渲染到dom模板或html页面上,最终表单就可以展现在html网页等载体上。若是组件升级或者被卸载,表单的渲染也会同步更新。
66.通过在内存中直接读取多个组件的组件配置关系渲染表单,相比于去服务端获取组件配置关系,避免了网络io资源的大量消耗,提升了用户的交互感受,进一步提高了表单渲染效率。针对多组件单独部署时此种方式能够大大减少io交互,有效地提高了多组件的读取效率。
67.在一个实施例中,步骤120之后,该方法还包括:步骤121、步骤122。
68.步骤121:若浏览器内存中未缓存有表单页面的组件配置信息,则从服务器端获取表单页面全部组件更新的组件配置信息;
69.步骤122:将更新的组件配置信息更新到浏览器内存中。
70.示例性地,组件信息如果存放在数据库之类的地方,可以手动修改数据库来操作,做不到组件的安全下载和安装,可以人为操作数据库来调整,也做不到对应的组件安全插拔,因此,当用户在表单渲染时选择指定版本组件安装后,该组件会被下载到服务器端的指定组件文件目录处。组件文件目录下每个组件都有对应的安全证书和使用有效期等控制,该文件目录下包含了组件的配置信息。服务器端的组件是由下载安装到指定目录生成,内存端的组件信息是用户浏览器端获取服务器端的组件作的数据同步更新。
71.当判断浏览器端内存中暂未缓存有表单页面的组件配置信息,即可以是当全局变量components未赋值,则从服务器端获取表单全部组件的最新版本,返回对应组件的组件配置信息,将这些组件配置信息赋值给全局变量,当读取组件描述后,会去从components变量中获取对应的组件配置信息。
72.通过判断到内存中未缓存组件配置信息,进而从服务器端获取组件信息,可以实现组件的服务器部署用户端自动更新发现,根据组件更新的信息来确定此次发布组件的作用域,可以实现局部性的组件更新,为组件配置信息的更新和缓存提供了必要条件,提升了用户的交互感受。
73.在一个实施例中,步骤122可以具体包括:步骤122a、步骤122b。
74.步骤122a:根据组件配置信息的版本号大小,倒序排列组件配置信息;
75.步骤122b:将倒序排列后,版本号排列在第一个的组件配置信息更新到浏览器内存中。
76.示例性地,当去服务器端获取表单全部组件的更新信息时,由于每个组件在服务端的组件文件目录中可能存在多个版本,因此应该首先依据版本号大小对同一组件的组件配置信息进行倒序排列,多个组件同样类似进行倒序排列,最终将每一个组件经倒序排列后,版本号排列在队头的组件配置信息均更新、缓存到浏览器内存中的全局变量处。通过利用版本号的大小来倒序获取第一个最新版本组件,提高了组件更新效率。
77.请参阅图3,图3为本技术实施例提供的一种表单渲染装置的功能模块示意图,该装置包括:获取模块210、判断缓存模块220、渲染模块230。
78.获取模块210,用于获取表单页面的用户访问请求;
79.判断缓存模块220,用于判断浏览器内存中是否缓存有所述表单页面的组件配置信息;其中,所述组件配置信息包括组件标识、组件版本号、组件更新时间、组件描述信息;
80.渲染模块230,用于若所述浏览器内存中缓存有所述表单页面的组件配置信息,则从所述浏览器内存读取所述组件配置信息,并基于所述组件配置信息对所述表单页面进行表单渲染。
81.可选地,判断缓存模块220可以用于:
82.读取浏览器内存中的全局变量;
83.根据所述全局变量是否赋值,确定浏览器内存中是否缓存表单页面的组件配置信息。
84.可选地,该装置还可以包括轮训访问单元,轮训访问单元可以用于:
85.轮训访问服务器端变更组件的组件配置信息;
86.判断所述变更组件的组件配置信息与所述浏览器内存中对应的组件配置信息更新时间是否一致;
87.若不一致,将所述变更组件的组件配置信息更新到所述浏览器内存中。
88.可选地,所述轮训访问的间隔时间为10s一次。
89.可选地,渲染模块230可以用于:
90.从所述浏览器内存读取多个组件对应的所述组件配置信息;
91.从所述组件配置信息解析出所述多个组件的样式、所述多个组件的事件、以及所述多个组件的三方联动关系;
92.基于所述多个组件的样式、所述多个组件的事件、以及所述多个组件的三方联动关系,对所述表单页面进行表单渲染。
93.可选地,该装置还可以包括服务端获取更新单元,服务端获取更新单元可以用于:
94.若所述浏览器内存中未缓存有所述表单页面的组件配置信息,则从服务器端获取所述表单页面全部组件更新的组件配置信息;
95.将所述更新的组件配置信息更新到所述浏览器内存中。
96.可选地,服务端获取更新单元还可以用于:
97.根据所述组件配置信息的版本号大小,倒序排列所述组件配置信息;
98.将倒序排列后,版本号排列在第一个的组件配置信息更新到所述浏览器内存中。
99.请参阅图4,图4是电子设备的方框示意图。电子设备300可以包括存储器311、存储控制器312、处理器313、外设接口314、输入输出单元315、显示单元316。本领域普通技术人员可以理解,图4所示的结构仅为示意,其并不对电子设备300的结构造成限定。例如,电子设备300还可包括比图4中所示更多或者更少的组件,或者具有与图4所示不同的配置。
100.上述的存储器311、存储控制器312、处理器313、外设接口314、输入输出单元315、显示单元316各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。上述的处理器313用于执行存储器中存储的可执行模块。
101.其中,存储器311可以是,但不限于,随机存取存储器(random access memory,简称ram),只读存储器(read only memory,简称rom),可编程只读存储器(programmable read-only memory,简称prom),可擦除只读存储器(erasable programmable read-only memory,简称eprom),电可擦除只读存储器(electric erasable programmable read-only memory,简称eeprom)等。其中,存储器311用于存储程序,所述处理器313在接收到执行指令后,执行所述程序,本技术实施例任一实施例揭示的过程定义的电子设备300所执行的方法可以应用于处理器313中,或者由处理器313实现。
102.上述的处理器313可能是一种集成电路芯片,具有信号的处理能力。上述的处理器313可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等;还可以是数字信号处理器(digital signal processor,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
103.上述的外设接口314将各种输入/输出装置耦合至处理器313以及存储器311。在一些实施例中,外设接口314,处理器313以及存储控制器312可以在单个芯片中实现。在其他一些实例中,他们可以分别由独立的芯片实现。
104.上述的输入输出单元315用于提供给用户输入数据。所述输入输出单元315可以是,但不限于,鼠标和键盘等。
105.上述的显示单元316在电子设备300与用户之间提供一个交互界面(例如用户操作界面)给用户参考。在本实施例中,所述显示单元316可以是液晶显示器或触控显示器。液晶显示器或触控显示器可以对处理器执行所述程序的过程进行显示。
106.本实施例中的电子设备300可以用于执行本技术实施例提供的各个方法中的各个步骤。
107.此外,本技术实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中的步骤。
108.本技术实施例所提供的上述方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行上述方法实施例中的步骤,具体可参见上述方法实施例,在此不再赘述。
109.在本技术所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。在本技术实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
110.需要说明的是,功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
111.在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
112.以上所述仅为本技术的实施例而已,并不用于限制本技术的保护范围,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1