CN112799663A - 页面显示方法、装置、计算机可读存储介质及电子设备 - Google Patents
页面显示方法、装置、计算机可读存储介质及电子设备 Download PDFInfo
- Publication number
- CN112799663A CN112799663A CN202110091323.6A CN202110091323A CN112799663A CN 112799663 A CN112799663 A CN 112799663A CN 202110091323 A CN202110091323 A CN 202110091323A CN 112799663 A CN112799663 A CN 112799663A
- Authority
- CN
- China
- Prior art keywords
- page
- component
- target page
- data
- target
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
- G06F16/972—Access to data in other repository systems, e.g. legacy data or dynamic Web page generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9574—Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9577—Optimising the visualization of content, e.g. distillation of HTML documents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
- G06F16/986—Document structures and storage, e.g. HTML extensions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/103—Formatting, i.e. changing of presentation of documents
- G06F40/106—Display of layout of documents; Previewing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Human Computer Interaction (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请提供了一种页面显示方法、装置、计算机可读存储介质及电子设备,属于计算机技术领域。所述方法包括:响应于对于Flutter应用程序中目标页面的显示指令,从服务器获取所述目标页面的组件文件,所述组件文件至少包括:组件构建信息、数据接口地址、组件数据和页面对象之间的绑定关系;根据所述数据接口地址获取所述目标页面的组件数据,并根据所述组件构建信息构建所述目标页面的组件对象;根据所述绑定关系将所述组件数据合并到相对应的组件对象中,以构建所述目标页面;显示所述目标页面。本方案可以使得Flutter应用程序所显示的页面可以更加高效地进行更新。
Description
技术领域
本申请属于计算机技术领域,特别是涉及一种页面显示方法、装置、计算机可读存储介质及电子设备。
背景技术
Flutter一种跨平台的移动端开发框架,开发语言采用Dart,支持Android、iOS、Web等操作系统。由于Dart同时支持AOT(Ahead-of-Time Compilation,提前编译)和JIT(Just in Time Compilation,即时编译),所以Flutter天生支持动态化,但出于安全原因,Flutter框架并不支持Flutter在生成环境开启动态化。
因此现有技术中在应用程序中的页面需要更新时,需要开发人员重新开发新的应用程序版本进行发布动移动端下载更新后,才能在客户端来展示新的页面样式和内容,显然这种方式由于需要耗费大量人力和时间成本,降低了Flutter应用程序中页面的更新效率,无法适应于用户对于应用程序中页面更新的需求。
发明内容
有鉴于此,本申请提供一种页面显示方法、装置、计算机可读存储介质及电子设备,在一定程度上解决现有技术中由于Flutter开发框架不支持生成环境动态化,使得应用程序的页面样式和内容更新需要重新发布应用程序的版本,消耗了大量人力和时间成本,导致Flutter应用程序中页面的样式内容更新效率低的问题。
依据本申请的第一方面,提供了一种页面显示方法,该方法可以包括:
响应于对于Flutter应用程序中目标页面的显示指令,从服务器获取所述目标页面的组件文件,所述组件文件至少包括:组件构建信息、数据接口地址、组件数据和页面对象之间的绑定关系;
根据所述数据接口地址获取所述目标页面的组件数据,并根据所述组件构建信息构建所述目标页面的组件对象;
根据所述绑定关系将所述组件数据合并到相对应的组件对象中,以构建所述目标页面;
显示所述目标页面。
可选地,在所述显示所述目标页面之后,所述方法还包括:
响应于对于所述目标页面的更新指令,根据所述目标页面相对应的页面更新策略对所述数据接口地址中的替换符进行替换;
根据替换后的数据接口地址获取更新数据;
根据所述更新数据重新执行所述目标页面的构建过程,获得更新后的目标页面;
显示所述更新后的目标页面。
可选地,所述更新指令至少包括:目标操作类型,所述页面更新策略包括:操作类型与地址字符之间的对应关系;
所述根据所述目标页面相对应的页面更新策略对所述数据接口地址中的替换符进行替换,包括:
根据所述页面更新策略获取所述目标操作类型相对应的目标地址字符;
将所述数据接口地址中的替换符替换为所述目标地址字符。
可选地,所述根据所述更新数据重新执行所述目标页面的构建过程,获得更新后的目标页面,包括:
将所述更新数据与所述组件数据进行合并,得到合并数据;
根据所述合并数据重新执行所述目标页面的构建过程,获得更新后的目标页面。
可选地,在所述显示所述更新后的目标页面之后,所述方法还包括:
将更新前的目标页面存储到本地缓存中;
在预设时间段中接收到对于所述更新前的目标页面的切换指令时,从所述本地缓存中获取所述更新前的目标页面进行显示;
在预设时间段中未接收到对于所述更新前的目标页面的切换指令时,删除所述本地缓存中的所述更新前的目标页面。
可选地,所述从服务器获取所述目标页面的组件文件,包括:
从服务器获取AST数据结构的组件文件,所述组件文件是通过利用语言分析器将DART语言的组件文件转换为JSON格式得到;
根据所述AST数据结构的解析规则对所述组件文件进行解析,获取所述目标页面的组件构建信息、数据接口地址、组件数据和页面对象之间的绑定关系。
可选地,在所述目标页面为列表页面时,所述页面对象包括:列表条目;
所述根据所述绑定关系将所述组件数据合并到相对应的组件对象中,以构建所述目标页面,包括:
根据所述绑定关系将所述组件数据添加到相对应的列表条目中,以构建所述列表页面。
依据本申请的第二方面,提供了一种页面显示装置,该装置可以包括:
获取模块,被配置为响应于对于Flutter应用程序中目标页面的显示指令,从服务器获取所述目标页面的组件文件,所述组件文件至少包括:组件构建信息、数据接口地址、组件数据和页面对象之间的绑定关系;
准备模块,被配置为根据所述数据接口地址获取所述目标页面的组件数据,并根据所述组件构建信息构建所述目标页面的组件对象;
构建模块,被配置为根据所述绑定关系将所述组件数据合并到相对应的组件对象中,以构建所述目标页面;
显示模块,被配置为显示所述目标页面。
可选地,所述装置还包括:更新模块,被配置为:
响应于对于所述目标页面的更新指令,根据所述目标页面相对应的页面更新策略对所述数据接口地址中的替换符进行替换;
根据替换后的数据接口地址获取更新数据;
根据所述更新数据重新执行所述目标页面的构建过程,获得更新后的目标页面;
显示所述更新后的目标页面。
可选地,所述更新指令至少包括:目标操作类型,所述页面更新策略包括:操作类型与地址字符之间的对应关系;
可选地,所述更新模块,还被配置为:
根据所述页面更新策略获取所述目标操作类型相对应的目标地址字符;
将所述数据接口地址中的替换符替换为所述目标地址字符。
可选地,所述更新模块,还被配置为:
将所述更新数据与所述组件数据进行合并,得到合并数据;
根据所述合并数据重新执行所述目标页面的构建过程,获得更新后的目标页面。
所述更新模块,还被配置为:
将更新前的目标页面存储到本地缓存中;
在预设时间段中接收到对于所述更新前的目标页面的切换指令时,从所述本地缓存中获取所述更新前的目标页面进行显示;
在预设时间段中未接收到对于所述更新前的目标页面的切换指令时,删除所述本地缓存中的所述更新前的目标页面。
可选地,所述获取模块,还被配置为:
从服务器获取AST数据结构的组件文件,所述组件文件是通过利用语言分析器将DART语言的组件文件转换为JSON格式得到;
根据所述AST数据结构的解析规则对所述组件文件进行解析,获取所述目标页面的组件构建信息、数据接口地址、组件数据和页面对象之间的绑定关系。
可选地,在所述目标页面为列表页面时,所述页面对象包括:列表条目;
所述构建模块,还被配置为:
根据所述绑定关系将所述组件数据添加到相对应的列表条目中,以构建所述列表页面。
第三方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的页面显示方法的步骤。
第四方面,本申请提供了一种电子设备包括:处理器、存储器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述的页面显示方法的步骤。
针对在先技术,本申请具备如下优点:
本申请实施例提供一种页面显示方法、装置、计算机可读存储介质及电子设备,本方案通过在Flutter应用程序需要显示目标页面时,通过从客户端获取用于构建目标页面的页面文件来构建目标页面,实现了页面布局的动态化获取,并且还通过页面中组件对象和组件数据之间的绑定实现了页面内容的动态化获取,从而使得Flutter应用程序所显示的页面可以更加高效地进行更新。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1是本申请实施例提供的一种页面显示方法的步骤流程图;
图2是本申请实施例提供的另一种页面显示方法的步骤流程图;
图3是本申请实施例提供的一种数据获取方法的步骤流程图;
图4是本申请实施例提供的再一种页面获取方法的步骤流程图;
图5是本申请实施例提供的一种页面显示方法的软件原理图;
图6是本申请实施例提供的一种页面显示装置的结构框图;
图7是本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本申请的示例性实施例。虽然附图中显示了本申请的示例性实施例,然而应当理解,可以以各种形式实现本申请而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本申请,并且能够将本申请的范围完整的传达给本领域的技术人员。
下面对本申请实施例中的页面显示方法进行详细说明。
图1是本申请实施例提供的一种页面显示方法的步骤流程图,如图1所示,该方法可以包括:
步骤101,响应于对于Flutter应用程序中目标页面的显示指令,从服务器获取所述目标页面的组件文件,所述组件文件至少包括:组件构建信息、数据接口地址、组件数据和页面对象之间的绑定关系。
在本申请实施例中,Flutter是一种跨平台的移动端开发框架,开发语言采用DART,支持Android、iOS、Web等操作系统,但是出于安全考虑,Flutter本身并不提供在页面动态化生成的功能,而本申请实施例正是针对这一缺陷,实现对于基于Flutter开发的应用程序中页面的动态化生成。显示指令可以是用户通过对于Flutter应用程序进行输入来触发显示目标页面的过程所生成的指令,该显示指令还可以是Flutter应用程序在运行过程中应用程序自身或者系统自动触发对于目标页面进行显示的过程的指令。组件构建信息是指构建组件层次树所需的所有信息,例如组件样式元素、显示位置、显示条件等等,此处组件是指页面所包含的页面组件。数据接口地址是指用于提供组件数据的数据接口的地址,可以通过访问该数据接口地址来调用数据接口获取组件数据。组件数据和页面对象之间的绑定关系可以是由URL(uniform resource locator,统一资源定位系统)和JsonPath(一种用于解析JSON格式数据的变量)组成,该URL就是数据接口地址,而JsonPath是用于描述页面对象在组件数据中查询所需数据的路径,从而实现了组件数据和页面对象之间的绑定关系。
在实际应用中,若Flutter应用程序的客户端接收到对于目标页面的显示指令,Flutter应用程序将会自动向服务器发送组件文件的获取请求,服务器在验证客户端的身份后,将会响应该获取请求,向Flutter应用程序的客户端发送目标页面的组件文件,以供客户端执行继续执行目标页面的显示过程。
步骤102,根据所述数据接口地址获取所述目标页面的组件数据,并根据所述组件构建信息构建所述目标页面的组件对象。
在本申请实施例中,应用程序的客户端通过访问该数据接口地址来调用服务器中与目标页面相关的数据接口,使得服务器生成组件数据并提供给向客户端,实现应用程序的客户端对于组件数据的动态化获取。应用程序的客户端通过基于组件构建信息来搭建目标页面中组件对象的层次树,从而可以生成目标页面中的组件对象,该组件对象可以是目标页面中的widgt(微件),用于实现例如时钟、列表、悬浮框等页面样式功能。组件对象的构建过程可以参照现有的常规组件构建方式,此处不再赘述,本申请实施例主要特点是在页面显示时从服务器来获取组件构建信息,实现了组件构建信息的动态化获取。
步骤103,根据所述绑定关系将所述组件数据合并到相对应的组件对象中,以构建所述目标页面。
在本申请实施例中,通过依据组件文件中的绑定关系可以查询到各组件数据对应的组件对象,通过将组件数据映射到组件对象中来动态化生成目标页面,实现了页面内容的动态化布局,使得Flutter应用程序中的页面内更新时,不再需要重新发布新的应用程序版本来对页面中的组件文件进行更新,可以依据实时获取到的组件文件来动态化生成英语显示的目标页面。
步骤104,显示所述目标页面。
在本申请实施例中,在目标页面构建完成后,Flutter应用程序的客户端通过渲染目标页面在客户端所在设备的显示屏幕中进行显示,以实现目标页面的内容动态化更新。
本申请实施例提供的一种页面显示方法,通过在Flutter应用程序需要显示目标页面时,通过从客户端获取用于构建目标页面的页面文件来构建目标页面,实现了页面布局的动态化获取,并且还通过页面中组件对象和组件数据之间的绑定实现了页面内容的动态化获取,从而使得Flutter应用程序所显示的页面可以更加高效地进行更新。
图2是本申请实施例提供的另一种页面显示方法的步骤流程图,如图2所示,该方法可以包括:
步骤201,响应于对于Flutter应用程序中目标页面的显示指令,从服务器获取AST数据结构的组件文件,所述组件文件是通过利用语言分析器将DART语言的组件文件转换为JSON格式得到。
在本申请实施例中,Flutter应用程序的开发人员可以首先基于DART语言设计开发目标页面的组件文件,然后通过DART语言提供的语言分析器(analyzer工具)来将DART语言转换为AST的数据结构然后保存为JSON格式上传到服务器进行存储,以供Flutter应用程序的客户端在显示目标页面时请求获取。
步骤202,根据所述AST数据结构的解析规则对所述组件文件进行解析,获取所述目标页面的组件构建信息、数据接口地址、组件数据和页面对象之间的绑定关系。
在本申请实施例中,Flutter应用程序的客户端内置有针对AST(Abstract SyntaxTree,抽象语法数)数据结构的解析器,该解析器可以依据AST解析规则对组件文件进行解析,从而获取客户端可以使用的组件构建信息、数据接口地址、组件数据和页面对象之间的绑定关系。
步骤203,根据所述数据接口地址获取所述目标页面的组件数据,并根据所述组件构建信息构建所述目标页面的组件对象。
该步骤可参照步骤102的详细描述,此处不再赘述。
步骤204,根据所述绑定关系将所述组件数据合并到相对应的组件对象中,以构建所述目标页面。
该步骤可参照步骤103的详细描述,此处不再赘述。
步骤205,显示所述目标页面。
该步骤可参照步骤104的详细描述,此处不再赘述。
可选地,所述更新指令至少包括:目标操作类型,所述页面更新策略包括:操作类型与地址字符之间的对应关系。
步骤206,响应于对于所述目标页面的更新指令,根据所述目标页面相对应的页面更新策略对所述数据接口地址中的替换符进行替换。
在本申请实施例中,更新指令是用于指示对目标页面中内容布局的进行更新的指令。对于页面分页或者翻页等页面更新过程,可以通过在数据接口地址中加入一个特殊的替换符来实现对于数据接口地址的更新。
可选地,参照图3,所述步骤206可以包括:
子步骤2061,响应于对于所述目标页面的更新指令,根据所述页面更新策略获取所述目标操作类型相对应的目标地址字符。
在本申请实施例中,目标操作类型是用于表征生成更新指令的生成方式的描述信息,例如用户基于点击、长按、滑动等类型的输入来生成的,或者是系统通过何种途径触发生成的,根据不同操作类型,Flutter应用程序的客户端预先存储相对应的目标地址字符串,该页面更新策略可以是通过预先设置在Flutter应用程序的安装包中设置在客户端中,也可以是客户端预先从服务器获取,具体可以根据实际需求设置此处不做限定。
子步骤2062,将所述数据接口地址中的替换符替换为所述目标地址字符。
在本申请实施例中,比如dat?page=\$page_index为更新前的数据接口地址,当要加载第3页的数据来说,通过对替换符的替换,绑定的数据接口地址被替换展开为类似于http://***.com/data?page=3这样的地址。当然此处只是示例性说明,具体可以根据实际需求设置,此处不做限定。
本申请实施例通过在Flutter应用程序的客户端中内置用于数据接口地址的页面更新策略来实现对于数据接口地址的动态化更新,无需每次都从服务器获取所需的数据接口地址,提高了页面内容更新的效率。
步骤207,根据替换后的数据接口地址获取更新数据。
在本申请实施例中,利用替换后的数据接口地址即可后去到页面所需更新的页面内容的更新数据。
步骤208,将所述更新数据与所述组件数据进行合并,得到合并数据。
在本申请实施例中,通过将更新数据和之前获取到的组件数据进行合并,可以实现对于目标页面中内容的加载过程,使得用户可以通过目标页面同时查看到更多的页面内容。
步骤209,根据所述合并数据重新执行所述目标页面的构建过程,获得更新后的目标页面。
在本申请实施例中,通过合并得到的合并数据重新构建目标页面,即可获得包含有更多页面内容的目标页面,通过合并数据构建更新后的目标页面的过程与步骤203至步骤204中的页面构建过程类似,此处不再赘述。
步骤210,显示所述更新后的目标页面。
本申请实施例通过基于替换后的数据接口地址获取的更新数据重新构建页面来对目标页面进行更新,无需每次重新向服务器获取组件文件,提高了页面更新的效率。
可选地,参照图4,在所述步骤210之后,所述方法还包括:
步骤211,将更新前的目标页面存储到本地缓存中。
步骤212,在预设时间段中接收到对于所述更新前的目标页面的切换指令时,从所述本地缓存中获取所述更新前的目标页面进行显示。
步骤213,在预设时间段中未接收到对于所述更新前的目标页面的切换指令时,删除所述本地缓存中的所述更新前的目标页面。
在本申请实施例中,由于每次页面构建会消耗一定设备的数据处理资源,而用户可以重复查看已经展示过的目标页面,在页面更新后可以在设备的缓存中存储更新前的目标页面持续预设时间段,该预设时间段可以是20s、1min、5min等,在更新前的目标页面需要被重新显示时,可以无需重新构建,而是从本地缓存中直接读取来进行显示,节省了构建页面所需的数据处理资源,当然考虑到设备的存储资源限制,在预设时间段后若更新前的目标页面无需进行显示,则可以直接清除缓存中的目标页面,以保证该目标页面的缓存过程不会占用过多的数据存储资源,应用程序可以正常运行。
可选地,在所述目标页面为列表页面时,所述页面对象包括:列表条目。所述步骤204,可以包括:根据所述绑定关系将所述组件数据添加到相对应的列表条目中,以构建所述列表页面。
在本申请实施例中,对于整个ListView(列表页面)来说,它的组件对象是一组列表条目,对于每一个列表条目来说,可以在JsonPath里面加入列表条目所在的序号来实现数据绑定,比如对于第3条数据来说,它对应的JsonPath可以是$['data'][3]['name']。当然此处只是示例性说明,具体可以根据实际需求设置列表条目和组件数据之间的对应关系,此处不做限定。
参照图5,在实际应用中,开发者通过编写Flutter代码来实现对于应用程序的本地开发,然后将开发得到的应用程序以及组件文件以AST数据结构的JSON文件的形式存储在网络连接的云端服务器进行存储,使得用户可以通过设备在从云端服务来下载和安装Flutter应用程序,客户端可以是基于Android、IOS等操作系统,客户端在需要显示界面时候通过从云端服务器下载组件文件通过AST解析后进行依据组件文件中的绑定关系来实现动态化的页面内容获取,从而实现对于Flutter应用程序中目标页面的动态化更新。
本申请实施例提供的另一种页面显示方法,通过在Flutter应用程序需要显示目标页面时,通过从客户端获取用于构建目标页面的页面文件来构建目标页面,实现了页面布局的动态化获取,并且还通过页面中组件对象和组件数据之间的绑定实现了页面内容的动态化获取,从而使得Flutter应用程序所显示的页面可以更加高效地进行更新。
图6是本申请实施例提供的一种页面显示装置30的结构框图,如图4所示,该装置30可以包括:
获取模块301,被配置为响应于对于Flutter应用程序中目标页面的显示指令,从服务器获取所述目标页面的组件文件,所述组件文件至少包括:组件构建信息、数据接口地址、组件数据和页面对象之间的绑定关系;
准备模块302,被配置为根据所述数据接口地址获取所述目标页面的组件数据,并根据所述组件构建信息构建所述目标页面的组件对象;
构建模块303,被配置为根据所述绑定关系将所述组件数据合并到相对应的组件对象中,以构建所述目标页面;
显示模块304,被配置为显示所述目标页面。
可选地,所述装置还包括:更新模块,被配置为:
响应于对于所述目标页面的更新指令,根据所述目标页面相对应的页面更新策略对所述数据接口地址中的替换符进行替换;
根据替换后的数据接口地址获取更新数据;
根据所述更新数据重新执行所述目标页面的构建过程,获得更新后的目标页面;
显示所述更新后的目标页面。
可选地,所述更新指令至少包括:目标操作类型,所述页面更新策略包括:操作类型与地址字符之间的对应关系;
可选地,所述更新模块,还被配置为:
根据所述页面更新策略获取所述目标操作类型相对应的目标地址字符;
将所述数据接口地址中的替换符替换为所述目标地址字符。
可选地,所述更新模块,还被配置为:
将所述更新数据与所述组件数据进行合并,得到合并数据;
根据所述合并数据重新执行所述目标页面的构建过程,获得更新后的目标页面。
所述更新模块,还被配置为:
将更新前的目标页面存储到本地缓存中;
在预设时间段中接收到对于所述更新前的目标页面的切换指令时,从所述本地缓存中获取所述更新前的目标页面进行显示;
在预设时间段中未接收到对于所述更新前的目标页面的切换指令时,删除所述本地缓存中的所述更新前的目标页面。
可选地,所述获取模块301,还被配置为:
从服务器获取AST数据结构的组件文件,所述组件文件是通过利用语言分析器将DART语言的组件文件转换为JSON格式得到;
根据所述AST数据结构的解析规则对所述组件文件进行解析,获取所述目标页面的组件构建信息、数据接口地址、组件数据和页面对象之间的绑定关系。
可选地,在所述目标页面为列表页面时,所述页面对象包括:列表条目;
所述构建模块303,还被配置为:
根据所述绑定关系将所述组件数据添加到相对应的列表条目中,以构建所述列表页面。
本申请实施例提供的页面显示装置具备执行页面显示方法相应的功能模块,可执行本申请实施例一到实施例九任一实施例所提供的页面显示方法,且能达到相同的有益效果。
在本申请提供的又一实施例中,还提供了一种电子设备,电子设备可以包括:处理器、存储器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现上述页面显示方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。示例的,如图7所示,该电子设备具体可以包括:处理器401、存储装置402、具有触摸功能的显示屏403、输入装置404、输出装置405以及通信装置406。该电子设备中处理器401的数量可以是一个或者多个,图7中以一个处理器401为例。该电子设备的处理器401、存储装置402、显示屏403、输入装置404、输出装置405以及通信装置406可以通过总线或者其他方式连接。
在本申请提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的页面显示方法。
在本申请提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的页面显示方法。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。
Claims (10)
1.一种页面显示方法,其特征在于,所述方法包括:
响应于对于Flutter应用程序中目标页面的显示指令,从服务器获取所述目标页面的组件文件,所述组件文件至少包括:组件构建信息、数据接口地址、组件数据和页面对象之间的绑定关系;
根据所述数据接口地址获取所述目标页面的组件数据,并根据所述组件构建信息构建所述目标页面的组件对象;
根据所述绑定关系将所述组件数据合并到相对应的组件对象中,以构建所述目标页面;
显示所述目标页面。
2.根据权利要求1所述的方法,其特征在于,在所述显示所述目标页面之后,所述方法还包括:
响应于对于所述目标页面的更新指令,根据所述目标页面相对应的页面更新策略对所述数据接口地址中的替换符进行替换;
根据替换后的数据接口地址获取更新数据;
根据所述更新数据重新执行所述目标页面的构建过程,获得更新后的目标页面;
显示所述更新后的目标页面。
3.根据权利要求2所述的方法,其特征在于,所述更新指令至少包括:目标操作类型,所述页面更新策略包括:操作类型与地址字符之间的对应关系;
所述根据所述目标页面相对应的页面更新策略对所述数据接口地址中的替换符进行替换,包括:
根据所述页面更新策略获取所述目标操作类型相对应的目标地址字符;
将所述数据接口地址中的替换符替换为所述目标地址字符。
4.根据权利要求2所述的方法,其特征在于,所述根据所述更新数据重新执行所述目标页面的构建过程,获得更新后的目标页面,包括:
将所述更新数据与所述组件数据进行合并,得到合并数据;
根据所述合并数据重新执行所述目标页面的构建过程,获得更新后的目标页面。
5.根据权利要求2所述的方法,其特征在于,在所述显示所述更新后的目标页面之后,所述方法还包括:
将更新前的目标页面存储到本地缓存中;
在预设时间段中接收到对于所述更新前的目标页面的切换指令时,从所述本地缓存中获取所述更新前的目标页面进行显示;
在预设时间段中未接收到对于所述更新前的目标页面的切换指令时,删除所述本地缓存中的所述更新前的目标页面。
6.根据权利要求1所述的方法,其特征在于,所述从服务器获取所述目标页面的组件文件,包括:
从服务器获取AST数据结构的组件文件,所述组件文件是通过利用语言分析器将DART语言的组件文件转换为JSON格式得到;
根据所述AST数据结构的解析规则对所述组件文件进行解析,获取所述目标页面的组件构建信息、数据接口地址、组件数据和页面对象之间的绑定关系。
7.根据权利要求1所述的方法,其特征在于,在所述目标页面为列表页面时,所述页面对象包括:列表条目;
所述根据所述绑定关系将所述组件数据合并到相对应的组件对象中,以构建所述目标页面,包括:
根据所述绑定关系将所述组件数据添加到相对应的列表条目中,以构建所述列表页面。
8.一种页面显示装置,其特征在于,所述装置包括:
获取模块,被配置为响应于对于Flutter应用程序中目标页面的显示指令,从服务器获取所述目标页面的组件文件,所述组件文件至少包括:组件构建信息、数据接口地址、组件数据和页面对象之间的绑定关系;
准备模块,被配置为根据所述数据接口地址获取所述目标页面的组件数据,并根据所述组件构建信息构建所述目标页面的组件对象;
构建模块,被配置为根据所述绑定关系将所述组件数据合并到相对应的组件对象中,以构建所述目标页面;
显示模块,被配置为显示所述目标页面。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一所述页面显示方法的步骤。
10.一种电子设备,其特征在于,包括:
处理器、存储器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一所述页面显示方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110091323.6A CN112799663A (zh) | 2021-01-22 | 2021-01-22 | 页面显示方法、装置、计算机可读存储介质及电子设备 |
US17/490,867 US11640441B2 (en) | 2021-01-22 | 2021-09-30 | Page displaying method and device, computer-readable storage medium and electronic device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110091323.6A CN112799663A (zh) | 2021-01-22 | 2021-01-22 | 页面显示方法、装置、计算机可读存储介质及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112799663A true CN112799663A (zh) | 2021-05-14 |
Family
ID=75811277
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110091323.6A Pending CN112799663A (zh) | 2021-01-22 | 2021-01-22 | 页面显示方法、装置、计算机可读存储介质及电子设备 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11640441B2 (zh) |
CN (1) | CN112799663A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114489894A (zh) * | 2022-01-13 | 2022-05-13 | 北京齐尔布莱特科技有限公司 | 客户端用户界面更新方法和装置、客户端和服务器 |
CN114817793A (zh) * | 2022-06-24 | 2022-07-29 | 深圳市信润富联数字科技有限公司 | 页面生成方法、装置、设备及存储介质 |
WO2022252040A1 (zh) * | 2021-05-31 | 2022-12-08 | 京东方科技集团股份有限公司 | 配置数据包及文件的生成方法、处理方法、设备和介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11868342B2 (en) * | 2021-06-29 | 2024-01-09 | Walmart Apollo, Llc | Systems and methods for generating dynamic instructions for database querying and data retrieval |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11609800B2 (en) * | 2020-08-20 | 2023-03-21 | Capital One Services, Llc | Systems and methods for providing a hybrid mobile application |
US11537400B1 (en) * | 2020-10-19 | 2022-12-27 | Amazon Technologies, Inc. | Automatically mapping binary executable files to source code by a software modernization system |
-
2021
- 2021-01-22 CN CN202110091323.6A patent/CN112799663A/zh active Pending
- 2021-09-30 US US17/490,867 patent/US11640441B2/en active Active
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022252040A1 (zh) * | 2021-05-31 | 2022-12-08 | 京东方科技集团股份有限公司 | 配置数据包及文件的生成方法、处理方法、设备和介质 |
CN114489894A (zh) * | 2022-01-13 | 2022-05-13 | 北京齐尔布莱特科技有限公司 | 客户端用户界面更新方法和装置、客户端和服务器 |
CN114817793A (zh) * | 2022-06-24 | 2022-07-29 | 深圳市信润富联数字科技有限公司 | 页面生成方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20220237254A1 (en) | 2022-07-28 |
US11640441B2 (en) | 2023-05-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112799663A (zh) | 页面显示方法、装置、计算机可读存储介质及电子设备 | |
CN106843869B (zh) | 一种前端开发工程化系统和方法 | |
US20210406033A1 (en) | Method for running applets, and electronic device | |
US8683319B2 (en) | Shared script files in multi-tab browser | |
CN109522018B (zh) | 页面处理方法、装置及存储介质 | |
US20130024759A1 (en) | Shared Script Files in Multi-Tab Browser | |
CN111381852A (zh) | 基于Flutter的应用动态更新方法、装置、存储介质及电子设备 | |
KR20080053293A (ko) | 클라이언트 스크립트 웹 페이지에 대한 서버측 초기 콘텐츠렌더링 | |
US20230036980A1 (en) | Micro-frontend system, sub-application loading method, electronic device, computer program product, and computer-readable storage medium | |
CN107688529B (zh) | 组件调试方法和装置 | |
CN109144567B (zh) | 跨平台的网页渲染方法、装置、服务器及存储介质 | |
CN112637361B (zh) | 一种页面代理方法、装置、电子设备及存储介质 | |
CN111680253A (zh) | 页面应用数据包生成方法、装置、计算机设备及存储介质 | |
CN110727429B (zh) | 一种前端页面的生成方法、装置及设备 | |
CN109145236A (zh) | 页面文件处理方法、装置及系统 | |
CN115268879A (zh) | 代码处理方法、装置、电子设备及存储介质 | |
CN109828759B (zh) | 代码编译方法、装置、计算机装置及存储介质 | |
CN113094138A (zh) | 界面显示方法、装置、电子设备及存储介质 | |
CN113761412A (zh) | 应用页面的显示方法、装置、电子设备、介质及应用系统 | |
CN114756228A (zh) | 页面处理方法、装置、设备及存储介质 | |
CN110941471A (zh) | 一种软件系统基础数据国际化的方法及装置 | |
CN103139298A (zh) | 一种传输网络数据的方法和装置 | |
CN112835568A (zh) | 一种项目构建方法和装置 | |
CN114168875A (zh) | 一种页面程序的生成方法、装置、计算机设备及存储介质 | |
CN108459890B (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 |