一种页面加载方法、装置、设备及可读存储介质与流程

文档序号:20680714发布日期:2020-05-08 18:22阅读:139来源:国知局
一种页面加载方法、装置、设备及可读存储介质与流程

本申请涉及计算机技术领域,特别涉及一种页面加载方法、装置、设备及可读存储介质。



背景技术:

目前,客户端需要针对不同国家和不同语言,对页面进行语言转换和配置。在现有技术中,语言配置数据一般写死在语言配置程序中。当转换客户端语言时,需要从服务端调用语言对应的语言配置程序进行配置,从而实现页面加载,这样会导致客户端和服务端的通信消耗较多,降低语言转换的效率和页面加载效率,代码维护也不方便。

因此,如何提高客户端的语言转换效率和页面加载效率,是本领域技术人员需要解决的问题。



技术实现要素:

有鉴于此,本申请的目的在于提供一种页面加载方法、装置、设备及可读存储介质,以提高客户端的语言转换效率和页面加载效率。其具体方案如下:

第一方面,本申请提供了一种页面加载方法,包括:

获取用户输入的语言配置请求;

判断当前客户端是否支持多语言;

若是,则根据语言配置请求确定用户选择的目的语言;

若客户端存储有目的语言对应的目的配置文件,则利用目的配置文件对客户端的页面组件进行语言配置,并完成页面加载;

其中,所述目的配置文件中的配置数据是已经完成编译的可读取数据。

优选地,根据语言配置请求确定用户选择的目的语言,包括:

解析语言配置请求,获得目的语言的语言标识;

根据语言标识确定目的语言。

优选地,利用目的配置文件对客户端的页面组件进行语言配置,包括:

利用国际化函数读取目的配置文件中的配置数据,将配置数据赋值给页面组件中的配置项。

优选地,完成页面加载,包括:

将页面组件编译为ast树,根据ast树构建虚拟节点树,按照虚拟节点树加载页面。

优选地,还包括:

若客户端不支持多语言,则返回错误提示消息。

优选地,还包括:

若客户端未存储有目的配置文件,则从服务端获取目的配置文件,并执行利用目的配置文件对客户端的页面组件进行语言配置,并完成页面加载的步骤。

优选地,获取用户输入的语言配置请求之前,还包括:

在页面首次加载过程中,利用默认语言对应的默认配置文件对客户端的页面组件进行配置,并完成页面加载;默认语言和目的语言不同。

第二方面,本申请提供了一种页面加载装置,包括:

获取模块,用于获取用户输入的语言配置请求;

判断模块,用于判断当前客户端是否支持多语言;

确定模块,用于若客户端支持多语言,则根据语言配置请求确定用户选择的目的语言;

加载模块,用于若客户端存储有目的语言对应的目的配置文件,则利用目的配置文件对客户端的页面组件进行语言配置,并完成页面加载;

其中,所述目的配置文件中的配置数据是已经完成编译的可读取数据。

第三方面,本申请提供了一种页面加载设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行计算机程序,以实现前述公开的页面加载方法。

第四方面,本申请提供了一种可读存储介质,用于保存计算机程序,其中,计算机程序被处理器执行时实现前述公开的页面加载方法。

通过以上方案可知,本申请提供了一种页面加载方法,包括:获取用户输入的语言配置请求;判断当前客户端是否支持多语言;若是,则根据语言配置请求确定用户选择的目的语言;若客户端存储有目的语言对应的目的配置文件,则利用目的配置文件对客户端的页面组件进行语言配置,并完成页面加载;其中,所述目的配置文件中的配置数据是已经完成编译的可读取数据。

可见,在获取到用户输入的语言配置请求且客户端支持多语言时,本申请首先根据语言配置请求确定用户选择的目的语言;若当前客户端存储有目的语言对应的目的配置文件,则直接利用目的配置文件对客户端的页面组件进行语言配置,并完成页面加载。在本申请中,无需调用某种语言的配置程序来进行语言配置,而是采用通用逻辑来读取配置文件进行配置,从而减少了客户端和服务端的通信消耗,提高了语言转换的效率和页面加载效率,也为代码维护提供了方便。并且,目的配置文件中的配置数据是已经完成编译的可读取数据,因此客户端无需对目的配置文件中的配置数据进行编译,从而可提高配置效率。

相应地,本申请提供的一种页面加载装置、设备及可读存储介质,也同样具有上述技术效果。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请公开的第一种页面加载方法流程图;

图2为本申请公开的第二种页面加载方法流程图;

图3为本申请公开的第三种页面加载方法流程图;

图4为本申请公开的一种页面加载装置示意图;

图5为本申请公开的一种页面加载设备示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

目前,语言配置数据一般写死在语言配置程序中。当转换客户端语言时,需要从服务端调用语言对应的语言配置程序进行配置,从而实现页面加载,这样会导致客户端和服务端的通信消耗较多,降低语言转换的效率和页面加载效率,代码维护也不方便。为此,本申请提供了一种页面加载方案,能够提高客户端的语言转换效率和页面加载效率。

参见图1所示,本申请实施例公开了一种页面加载方法,包括:

s101、获取用户输入的语言配置请求;

在本实施例中,获取用户输入的语言配置请求之前,还包括:在页面首次加载过程中,利用默认语言对应的默认配置文件对客户端的页面组件进行配置,并完成页面加载;默认语言和目的语言不同。

s102、判断当前客户端是否支持多语言;若是,则执行s103;若否,则返回错误提示消息;

其中,本实施例中的多语言指代的是世界七大语系中的常用语言或各个国家使用的官方语言。世界七大语系中的常用语言如:印欧语系中的梵语、英语、德语、意大利语、西班牙语、葡萄牙语等。汉藏语系下的汉语、藏语、缅甸语等。

需要说明的是,若当前客户端支持多语言,则说明当前客户端配置有多语言功能,其可以对展示页面进行语言转换。若当前客户端不支持多语言,则说明当前客户端未配置有多语言功能,其展示页面仅支持某一种语言,因此当获取到用户输入的语言配置请求时,可以返回错误提示消息,错误提示消息可以展示在客户端显示的当前页面,以提示用户当前客户端不支持多语言转换功能。

s103、根据语言配置请求确定用户选择的目的语言;

s104、若客户端存储有目的语言对应的目的配置文件,则利用目的配置文件对客户端的页面组件进行语言配置,并完成页面加载。

其中,目的配置文件中的配置数据是已经完成编译的、且可以直接读取的数据,从而可提高配置效率。目的配置文件中的配置数据在服务端完成编译后,传输至客户端。若客户端支持的语言类型较少,那么可直接将所有语言对应的、完成编译后的配置数据提前存储在客户端。若客户端支持的语言类型较多,那么可以在获取到用户输入的语言配置请求时,去服务端获取当前请求的语言对应的完成编译后的配置数据。

需要说明的是,客户端执行编译的效率不如服务端,因此在服务端完成编译后,将编译后的数据传输至客户端,不仅可以提高编译效率,还可以提高配置的整体效率。同时,目的配置文件中的配置数据设置在服务端,并在服务端完成编译,可以为架构优化提供便利。

需要说明的是,目的语言即为用户要为当前客户端配置的语言。如:若目的语言为英语,则说明用户想要客户端页面以英语这种语言进行展示。

在一种具体实施方式中,根据语言配置请求确定用户选择的目的语言,包括:解析语言配置请求,获得目的语言的语言标识;根据语言标识确定目的语言。其中,目的语言的语言标识可以为语言名称的英文名称,也可以是使用该语言的国家名称的英文名称。语言名称的英文名称如:english,国家名称的英文名称如:america。为方便配置,语言标识可以为名称的英文缩写。

在一种具体实施方式中,利用目的配置文件对客户端的页面组件进行语言配置,包括:利用国际化函数读取目的配置文件中的配置数据,将配置数据赋值给页面组件中的配置项。其中,目的配置文件中存储有使用目的语言时,页面组件中的各个配置项的值。国际化函数的使用方法和原理可参照现有技术,本实施例不再详述。

在一种具体实施方式中,完成页面加载,包括:将页面组件编译为ast树,根据ast树构建虚拟节点树,按照虚拟节点树加载页面。其中,虚拟节点树的各个节点包括各个配置项的赋值。

需要说明的是,利用ast树实现页面加载,可实现数据和界面的动态替换、刷新。其中,在页面加载过程中,发生变化的动态数据被标记,进而会依据相应标记更新ast树上的节点,从而可提高页面加载性能。并且,在页面加载过程中,国际化函数和过滤器以执行嵌入的形式来实现数据获取。

目的配置文件中的配置数据以key-value键值对的形式存储。国际化函数将通过key值获取value值的过程抽象为函数,可以实现通用化,可便于集中大规模团队开发,提高易用性。

在本实施例中,服务端可以读取properties配置文件,从而可以将国际化字段传递到客户端,并将其配置到客户端。客户端框架虚拟server具有编译刷新功能。当需要刷新页面的时候,虚拟server负责重新构建页面的虚拟节点树,并输出到页面进行展示。

在本实施例中,若客户端未存储有目的配置文件,则从服务端获取目的配置文件,并执行利用目的配置文件对客户端的页面组件进行语言配置,并完成页面加载的步骤。

可见,在获取到用户输入的语言配置请求且客户端支持多语言时,本申请首先根据语言配置请求确定用户选择的目的语言;若当前客户端存储有目的语言对应的目的配置文件,则直接利用目的配置文件对客户端的页面组件进行语言配置,并完成页面加载。在本申请中,无需调用某种语言的配置程序来进行语言配置,而是采用通用逻辑来读取配置文件进行配置,从而减少了客户端和服务端的通信消耗,提高了语言转换的效率和页面加载效率,也为代码维护提供了方便。

按照本申请提供的方法可以将国际化字段封装到服务端存储的配置文件中。当每次用户访问客户端时候,将客户端对应的地区传递给服务端,服务端选择性地加载配置文件,读取数据并返回给客户端。需要使用的时候,通过前端框架或者自定义的函数取出字段对应的国际化字段。其中,国际化字段表示:使用某一种语言时某一个配置项的赋值字段。

在本实施例中,客户端包括:

国际化模块用于向服务端发送语言配置请求,以请求国际化数据(也就是获取相应的配置文件)。国际化数据包括:使用某一种语言时客户端页面的配置项的赋值字段。

虚拟server模块用于利用新读取的配置文件重新构建虚拟节点树并编译视图,输出到界面。具体的,将页面组件编译为ast树,根据ast树构建虚拟节点树,按照虚拟节点树加载页面。

切换控制模块用于实现国际化数据的切换流程,其逻辑主要包括:

1、是否需要支持多语言,是否加载全部语言的配置文件,配置当前默认语言。

2、客户端页面初次加载,按照默认语言配置初始化用户操作界面。

3、切换语言时,修改国际化local标识,并根据国际化local标识重新获取相应的配置文件。如果客户端已经提前配置了国际化local标识对应的配置文件,则不需要向服务端请求国际化数据。如果客户端未提前配置国际化local标识对应的配置文件,则需要向服务端请求国际化数据。

服务端提供国际化数据查询接口。服务端存储有各种语言和地区对应的配置文件。

配置文件在服务端的存储路径可以为:/resource/i18n/国际化local标识/;其中,国际化local标识/即为语言标识。例如:存储路径为:/resource/i18n/zh_cn/、/resource/i18n/en_us/。

配置文件的命名格式可以为:项目名.业务模块名.业务名.properties。例如:icos.storage.backend.properties。properties中的数据是已经完成编译的可读取数据。properties文件还可以存放缓存数据,能够降低服务端压力。

使用某一种语言时配置项的赋值字段的key格式可以为:业务模块名.业务名或者二级模块.key名。例如:storage.backend.createbackend=创建备份。

具体的,当客户端页面初次加载时,按照默认语言配置初始化用户操作界面。同时,判断客户端是否支持多语言、是否加载全部语言的配置文件,若客户端支持多语言,则可以一次性从服务端获取所有语言对应的配置文件,也可以只获取默认语言对应的配置文件。具体请参见图2,在图2中,加载全部国际化也就是加载全部语言的配置文件。获取全部国际化配置也就是获取全部语言的配置文件。全部国际化数据也就是获取到的全部语言的配置文件中的配置数据。前端即客户端。获取指定国际化配置也就是获取指定语言(目的语言)的配置文件。指定国际化数据也就是指定语言(目的语言)的配置文件中的配置数据。图2中的流程2指图3所示的流程。

当前,还可以配置客户端页面在初次加载时,默认一次性从服务端获取所有语言对应的配置文件。获取到所有语言对应的配置文件后,可以存储至客户端的全局变量中。当需要加载时,利用组件将每一个需要修改的配置项编译成其对应的值。客户端可以通过国际化函数来获取配置项的相应值。

若用户想要切换客户端语言,则判断当前客户端是否已有全部语言的配置文件,若是,则直接获取指定语言(目的语言)的配置文件,以完成页面加载。若否,则向服务端请求指定语言(目的语言)的配置文件,以完成页面加载。具体请参见图3,在图3中,界面即客户端页面,远端即服务端。已获取全部国际化也就是已有全部语言的配置文件。获取指定国际化数据也就是获取指定语言(目的语言)的配置文件。向远端请求指定国际化配置也就是向服务端请求指定语言(目的语言)的配置文件。

由上可见,本实施例可以复用语言转换逻辑,从而降低开发成本。本实施例实现国际化按需加载,从而降低了前端代码量,省去了大量重复的开发逻辑,节约了成本和工作量。

下面对本申请实施例提供的一种页面加载装置进行介绍,下文描述的一种页面加载装置与上文描述的一种页面加载方法可以相互参照。

参见图4所示,本申请实施例公开了一种页面加载装置,包括:

获取模块401,用于获取用户输入的语言配置请求;

判断模块402,用于判断当前客户端是否支持多语言;

确定模块403,用于若客户端支持多语言,则根据语言配置请求确定用户选择的目的语言;

加载模块404,用于若客户端存储有目的语言对应的目的配置文件,则利用目的配置文件对客户端的页面组件进行语言配置,并完成页面加载;其中,所述目的配置文件中的配置数据是已经完成编译的可读取数据。

在一种具体实施方式中,确定模块具体用于:

解析语言配置请求,获得目的语言的语言标识;根据语言标识确定目的语言。

在一种具体实施方式中,加载模块具体用于:

利用国际化函数读取目的配置文件中的配置数据,将配置数据赋值给页面组件中的配置项。

在一种具体实施方式中,加载模块具体用于:

将页面组件编译为ast树,根据ast树构建虚拟节点树,按照虚拟节点树加载页面。

在一种具体实施方式中,还包括:

若客户端不支持多语言,则返回错误提示消息。

在一种具体实施方式中,还包括:

执行模块,用于若客户端未存储有目的配置文件,则从服务端获取目的配置文件,并执行利用目的配置文件对客户端的页面组件进行语言配置,并完成页面加载的步骤。

在一种具体实施方式中,还包括:

默认语言加载模块,用于在页面首次加载过程中,利用默认语言对应的默认配置文件对客户端的页面组件进行配置,并完成页面加载;默认语言和目的语言不同。

其中,关于本实施例中各个模块、单元更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。

可见,本实施例提供了一种页面加载装置,该装置无需调用某种语言的配置程序来进行语言配置,而是采用通用逻辑来读取配置文件进行配置,从而减少了客户端和服务端的通信消耗,提高了语言转换的效率和页面加载效率,也为代码维护提供了方便。

下面对本申请实施例提供的一种页面加载设备进行介绍,下文描述的一种页面加载设备与上文描述的一种页面加载方法及装置可以相互参照。

参见图5所示,本申请实施例公开了一种页面加载设备,包括:

存储器501,用于保存计算机程序;

处理器502,用于执行所述计算机程序,以实现上述任意实施例公开的方法。

下面对本申请实施例提供的一种可读存储介质进行介绍,下文描述的一种可读存储介质与上文描述的一种页面加载方法、装置及设备可以相互参照。

一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述实施例公开的页面加载方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。

本申请涉及的“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法或设备固有的其它步骤或单元。

需要说明的是,在本申请中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的可读存储介质中。

本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1