CN109947433A - 一种小程序的生成方法、更新方法及装置 - Google Patents
一种小程序的生成方法、更新方法及装置 Download PDFInfo
- Publication number
- CN109947433A CN109947433A CN201910245927.4A CN201910245927A CN109947433A CN 109947433 A CN109947433 A CN 109947433A CN 201910245927 A CN201910245927 A CN 201910245927A CN 109947433 A CN109947433 A CN 109947433A
- Authority
- CN
- China
- Prior art keywords
- code file
- code
- functional unit
- platform
- file
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种小程序的生成方法、更新方法及装置。所述方法包括:在获取到待生成的小程序所对应功能组件的初始代码文件和运行该待生成的小程序的目标平台的平台标识后,即可对功能组件的初始代码文件进行解析,并且可以根据解析后得到的功能组件的初始代码文件、初始代码文件对应的初始代码结构以及预先存储且与平台标识对应的参考代码结构,来确定功能组件在目标平台中的目标代码文件,进而可以根据目标代码文件生成该待生成的小程序。如此,开发人员仅需要编写一次代码文件,经过解析可以生成适用于不同平台的代码文件,大大降低了开发人员的工作压力,节省了小程序的开发和维护的时间,提高了小程序开发的效率。
Description
技术领域
本申请涉及计算机软件技术领域,特别涉及一种小程序的生成方法、更新方法及装置。
背景技术
随着终端技术和互联网技术的不断发展,如手机、平板电脑等终端上安装的应用程序越来越多,这些应用程序占用了终端大量的内存,容易导致终端内存不足、运行缓慢等问题。基于这些问题的出现,小程序应运而生。
小程序是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户通过扫描二维码或搜索关键字即可打开应用。由于小程序本身并不需要安装和卸载,因此小程序也体现了“用完即走”的理念,用户不用关心终端是否安装太多应用程序的问题,大大节省了终端的内存使用量。很多企业看到了小程序的应用前景,纷纷提供了能够支持小程序运行的平台,例如微信平台、头条平台、百度平台和快应用平台等。然而,由于不同平台所适用的代码结构之间存在差异,因此,即便是对于同一款小程序,开发人员也需要分别针对不同平台编写不同的代码文件,这就导致小程序的开发过程耗时耗力,开发效率低的问题。
基于此,目前亟需一种小程序的生成方法,用于解决现有技术中小程序的开发过程耗时耗力,开发效率低的问题。
发明内容
本申请提供了一种小程序的生成方法、更新方法及装置,可用于解决在现有技术中小程序的开发过程耗时耗力,开发效率低的技术问题。
第一方面,本申请实施例提供一种小程序的生成方法,所述方法包括:
获取待生成的小程序对应的功能组件的初始代码文件和运行所述待生成的小程序的目标平台的标识;
对所述功能组件的初始代码文件进行解析,得到所述初始代码文件对应的初始代码结构;
根据所述功能组件的初始代码文件、所述初始代码文件对应的初始代码结构以及预先存储且与所述平台标识对应的参考代码结构,确定所述功能组件在所述目标平台中的目标代码文件;
根据所述功能组件在所述目标平台中的目标代码文件,生成所述待生成的小程序。
采用本申请实施例所提供的方法,开发人员仅需要编写一次代码文件,经过解析可以生成适用于不同平台的代码文件,大大降低了开发人员的工作压力,节省了小程序的开发和维护的时间,提高了小程序开发的效率。
在一种可能的实现方式中,根据所述功能组件的初始代码文件、所述初始代码文件对应的初始代码结构以及预先存储且与所述平台标识对应的参考代码结构,确定所述功能组件在所述目标平台中的目标代码文件,包括:
根据所述预先存储且与所述平台标识对应的参考代码结构对所述初始代码文件对应的初始代码结构进行调整,得到所述功能组件在所述目标平台中的目标代码结构;
根据所述功能组件的初始代码文件和所述目标代码结构,确定所述功能组件在所述目标平台中的目标代码文件。
采用先调整代码结构,再确定目标代码文件的方式,有利于提高目标代码文件的准确度。
在一种可能的实现方式中,所述初始代码结构为抽象语法树AST代码结构。
如此,将AST代码结构作为初始代码结构,解析过程中无需依赖于代码文件中代码上下文内容,适用范围广。
在一种可能的实现方式中,所述功能组件的初始代码文件包括超文本标记语言HTML格式的代码文件、层叠样式表CSS格式的代码文件和脚本语言JS格式的代码文件中的至少一项;
对所述功能组件的初始代码文件进行解析,得到所述初始代码文件对应的初始代码结构,包括:
对所述HTML格式的代码文件进行解析,得到所述HTML格式的代码文件对应的AST代码结构;
以及对所述CSS格式的代码文件进行解析,得到所述CSS格式的代码文件对应的AST代码结构;
以及对所述JS格式的代码文件进行解析,得到所述JS格式的代码文件对应的AST代码结构。
第二方面,本申请实施例提供一种小程序的更新方法,所述方法还包括:
获取小程序中待更新的功能组件对应的更新代码文件以及所述待更新的功能组件对应的更新平台的标识;
对所述待更新的功能组件对应的更新代码文件进行解析,得到所述更新代码文件对应的代码结构;
根据所述待更新的功能组件对应的更新代码文件、所述更新代码文件对应的代码结构以及预先存储且与所述更新平台的标识对应的参考代码结构,确定所述待更新的功能组件在所述更新平台中的目标更新代码文件;
根据所述目标更新代码文件在所述更新平台中对所述待更新组件进行更新。
如此,针对同一款小程序,一方面,开发人员可以只编写一次待更新的代码文件,经过解析可以生成适用于不同平台的代码文件,从而能够降低开发人员的工作压力,节省小程序的更新时间,提高了小程序更新的效率。另一方面,即便该小程序在不同的平台中存在一定差异,即本申请实施例提供的方法也可以针对不同的平台分别进行更新,从而能够满足不同平台的更新需求。
在一种可能的实现方式中,根据所述待更新的功能组件对应的更新代码文件、所述更新代码文件对应的代码结构以及预先存储且与所述更新平台的标识对应的参考代码结构,确定所述待更新的功能组件在所述更新平台中的目标更新代码文件,包括:
根据所述预先存储且与所述更新平台的标识对应的参考代码结构对所述更新代码文件对应的代码结构进行调整,得到所述待更新的功能组件在所述更新平台中的目标更新代码结构;
根据所述待更新的功能组件对应的更新代码文件和所述目标更新代码结构,确定所述待更新的功能组件在所述更新平台中的目标更新代码文件。
在一种可能的实现方式中,所述更新代码文件对应的代码结构为抽象语法树AST代码结构。
在一种可能的实现方式中,所述待更新的功能组件对应的更新代码文件包括超文本标记语言HTML格式的代码文件、层叠样式表CSS格式的代码文件和脚本语言JS格式的代码文件中的至少一项;
对所述待更新的功能组件对应的更新代码文件进行解析,得到所述更新代码文件对应的代码结构,包括:
对所述HTML格式的更新代码文件进行解析,得到所述HTML格式的代码文件对应的AST代码结构;
以及对所述CSS格式的更新代码文件进行解析,得到所述CSS格式的代码文件对应的AST代码结构;
以及对所述JS格式的更新代码文件进行解析,得到所述JS格式的代码文件对应的AST代码结构。
第三方面,本申请实施例提供一种小程序的生成装置,所述装置包括:
获取单元,用于获取待生成的小程序对应的多个功能组件的初始代码文件和运行所述待生成的小程序的目标平台的平台标识;
处理单元,用于对所述功能组件的初始代码文件进行解析,得到所述初始代码文件对应的初始代码结构;并根据所述功能组件的初始代码文件、所述初始代码文件对应的初始代码结构以及预先存储且与所述平台标识对应的参考代码结构,确定所述功能组件在所述目标平台中的目标代码文件;
生成单元,用于根据所述功能组件在所述目标平台中的目标代码文件,生成所述待生成的小程序。
在一种可能的实现方式中,所述处理单元具体用于:
根据所述预先存储且与所述平台标识对应的参考代码结构对所述初始代码文件对应的初始代码结构进行调整,得到所述功能组件在所述目标平台中的目标代码结构;
根据所述功能组件的初始代码文件和所述目标代码结构,确定所述功能组件在所述目标平台中的目标代码文件。
在一种可能的实现方式中,所述初始代码结构为抽象语法树AST代码结构。
在一种可能的实现方式中,所述功能组件的初始代码文件包括超文本标记语言HTML格式的代码文件、层叠样式表CSS格式的代码文件和脚本语言JS格式的代码文件中的至少一项;
所述处理单元具体用于:
对所述HTML格式的代码文件进行解析,得到所述HTML格式的代码文件对应的AST代码结构;
以及对所述CSS格式的代码文件进行解析,得到所述CSS格式的代码文件对应的AST代码结构;
以及对所述JS格式的代码文件进行解析,得到所述JS格式的代码文件对应的AST代码结构。
第四方面,本申请实施例提供一种小程序的更新装置,所述装置还包括:
获取单元,用于获取小程序中待更新的功能组件对应的更新代码文件以及所述待更新的功能组件对应的更新平台的标识;
处理单元,用于对所述待更新的功能组件对应的更新代码文件进行解析,得到所述更新代码文件对应的代码结构;
所述处理单元,还用于根据所述待更新的功能组件对应的更新代码文件、所述更新代码文件对应的代码结构以及预先存储且与所述更新平台的标识对应的参考代码结构,确定所述待更新的功能组件在所述更新平台中的目标更新代码文件;
更新单元,用于根据所述目标更新代码文件在所述更新平台中对所述待更新组件进行更新。
在一种可能的实现方式中,所述处理单元具体用于:
根据所述预先存储且与所述更新平台的标识对应的参考代码结构对所述更新代码文件对应的代码结构进行调整,得到所述待更新的功能组件在所述更新平台中的目标更新代码结构;
根据所述待更新的功能组件对应的更新代码文件和所述目标更新代码结构,确定所述待更新的功能组件在所述更新平台中的目标更新代码文件。
在一种可能的实现方式中,所述更新代码文件对应的代码结构为抽象语法树AST代码结构。
在一种可能的实现方式中,所述待更新的功能组件对应的更新代码文件包括超文本标记语言HTML格式的代码文件、层叠样式表CSS格式的代码文件和脚本语言JS格式的代码文件中的至少一项;
所述处理单元具体用于:
对所述HTML格式的更新代码文件进行解析,得到所述HTML格式的代码文件对应的AST代码结构;
以及对所述CSS格式的更新代码文件进行解析,得到所述CSS格式的代码文件对应的AST代码结构;
以及对所述JS格式的更新代码文件进行解析,得到所述JS格式的代码文件对应的AST代码结构。
附图说明
图1为本申请实施例适用的一种***的结构示意图;
图2为本申请实施例提供的一种小程序的生成方法所对应的流程示意图;
图3为本申请实施例提供的一种HTML格式的目标代码文件的生成示意图;
图4为本申请实施例提供的一种CSS格式的目标代码文件的生成示意图;
图5为本申请实施例提供的一种JS格式的目标代码文件的生成示意图;
图6为本申请实施例提供的一种小程序的更新方法所对应的流程示意图;
图7为本申请实施例提供的一种小程序的生成装置的结构示意图;
图8为本申请实施例提供的一种小程序的更新装置的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
下面首先结合图1对本申请实施例适用的可能的***架构进行介绍。
请参考图1,其示例性示出了本申请实施例适用的一种***的结构示意图。该***100可以包括通用资源模块101、平台目录模块102、处理模块103、配置模块104以及扩展模块105。
其中,通用资源模块101可以包括自定义功能组件和通用功能组件两个部分,以“优信”小程序为例,“优信认证组件”可以看作是自定义功能组件,“网络请求fetch组件”可以看书是通用功能组件。
平台目录模块102可以包括头条平台、微信平台、百度平台和快应用平台等,平台目录模块可以预先存储有各平台的参考代码结构,具体可以以代码目录的方式进行存储。
处理模块103可以包括监听模块1031、编译模块1032和输出模块1033。其中,监听模块1031可以监听通用资源模块101和平台目录模块102分别输出的内容组合后得到的组合项目,监听模块1031在监听到有组合项目生成或监听到有组合项目变更时,可以向编译模块1032发送监听到的内容,并由编译模块1032进行代码编译,编译模块1032可以将编译后的代码发送给输出模块1033。
配置模块104可以包括监控配置、编译配置、输出路径配置和预编译配置等。以编译配置为例,配置模块104可以设置有编译模块1032的版本号,具体可以通过运行命令“npminstall”获取相关的配置信息。
扩展模块105主要用于支持一些扩展功能,比如,扩展模块105可以设置有代码规范插件(如ESlint插件)等类型的插件。
需要说明的是,具体实施过程中,***100可以采用命令行工具(Command LineInterface,CLI)来启动,或者也可以采用其它方式来启动,比如发送信令的方式,具体不做限定。***100启动后,处理模块103中的监听模块1031实时监听通用资源模块101和平台目录模块102,若监听到有组合项目(该组合项目是由通用资源模块101和平台目录模块102生成的)生成或监听到有组合项目变更时,可以向处理模块103中的编译模块1032发送监听到的内容,并由编译模块1032进行代码编译,编译模块1032可以将编译后的代码发送给处理模块103中的输出模块1033。
基于图1所示的***架构,图2示例性示出了本申请实施例提供的一种小程序的生成方法所对应的流程示意图。如图2所示,具体包括如下步骤:
步骤201,获取待生成的小程序对应的多个功能组件的初始代码文件和运行所述待生成的小程序的目标平台的平台标识。
步骤202,对所述功能组件的初始代码文件进行解析,得到所述初始代码文件对应的初始代码结构;
步骤203,根据所述功能组件的初始代码文件、所述初始代码文件对应的初始代码结构以及预先存储且与所述平台标识对应的参考代码结构,确定所述功能组件在所述目标平台中的目标代码文件。
步骤204,根据所述功能组件在所述目标平台中的目标代码文件,生成所述待生成的小程序。
如此,针对同一款小程序,在获取到待生成的小程序所对应功能组件的初始代码文件和运行该待生成的小程序的目标平台的标识后,即可对功能组件的初始代码文件进行解析,并且可以根据解析后得到的功能组件的初始代码文件、初始代码文件对应的初始代码结构以及预先存储且与平台标识对应的参考代码结构,来确定功能组件在目标平台中的目标代码文件,进而可以根据目标代码文件生成该待生成的小程序。采用本申请实施例所提供的方法,开发人员仅需要编写一次代码文件,经过解析可以生成适用于不同平台的代码文件,大大降低了开发人员的工作压力,节省了小程序的开发和维护的时间,提高了小程序开发的效率。
需要说明的是,结合图1示出的***架构,上述步骤201至步骤204可以是由图1中示出的处理模块103来执行。
在进行具体的描述之前,首先介绍本申请实施例所适用的场景,该场景可以是小程序开发,即在不同平台中开发相同小程序;或者,也可以是小程序移植,即将某个平台中的小程序移植到另一个平台中;或者,也可以是其它设计小程序生成的场景,具体不做限定。
具体来说,步骤201中,初始代码文件的具体获取方式可以有多种,例如,可以是从开发人员处获取的;或者,也可以是从代码数据库中获取的;或者,在小程序移植的场景中,初始代码文件也可以是从源平台中获取的,具体不做限定。
目标平台的标识的获取方式可以由多种,例如,可以是由开发人员输入的,或者也可以是从预设位置获取到的,具体不做限定。
待生成的小程序可以包括多个功能组件,这些功能组件组合到一起可以生成该小程序。并且,每个功能组件都具有对应的初始代码文件。其中,功能组件可以包括自定义功能组件和通用功能组件。举个例子,自定义功能组件可以包括“认证组件”、“视图功能组件”、“多媒体功能组件”、“导航功能组件”等;通用功能组件可以包括“网络请求fetch模块”、“运行命令command模块”等。相应地,“认证功能组件”设置有“认证功能组件”对应的初始代码文件,“视图功能组件”设置有“视图功能组件”对应的初始代码文件,其它功能组件也分别设置有对应的初始代码文件,此处不再一一列举。
目标平台可以是指运行待生成的小程序的平台,举个例子,若需要在微信平台中运行该小程序,则微信平台就可以看作是目标平台。进一步地,目标平台的平台标识可以用于唯一指示该目标平台。目标平台的平台标识可以是以字母、数字、符号等形式中的任一项或任意组合的形式呈现,具体不做限定。
步骤202中,初始代码文件的解析方式有多种,一种可能的实现方式为,设定初始代码结构为抽象语法树(Abstract Syntax Tree,AST)代码结构,也就是说,可以对功能组件的初始代码文件进行解析,从而得到初始代码文件对应的AST代码结构。其中,AST是源代码的抽象语法结构的树状表现形式,这里特指编程语言的源代码。一般来说,在源代码的翻译和编译过程中,语法分析器创建出分析树。一旦AST被创建出来,在后续的处理过程中,比如语义分析阶段,可以在其中添加一些信息。如此,将AST代码结构作为初始代码结构,解析过程中无需依赖于代码文件中代码上下文内容,适用范围广。
进一步地,功能组件的初始代码文件包括超文本标记语言(Hyper Text MarkupLanguage,HTML)格式的代码文件、层叠样式表(Cascading Style Sheets,CSS)格式的代码文件和脚本语言(JavaScript,JS)格式的代码文件中的至少一项。其中,HTML是一种用于创建网页的标准标记语言,可以运行在浏览器上,由浏览器来解析;CSS是一种用来表现HTML或可扩展标记语言(eXtensible Markup Language,XML)等文件样式的计算机语言,不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化;JS是一种动态类型、弱类型、基于原型的语言,内置支持类型,它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,可在HTML网页上使用,用来给HTML网页增加动态功能。
基于初始代码文件对应的语言的多样性,对初始代码文件进行解析时,可以针对不同类型的语言分别进行解析。具体来说,初始代码文件可以包括以下类型:(1)仅包括HTML格式的代码文件;(2)仅包括CSS格式的代码文件;(3)仅包括JS格式的代码文件;(4)包括HTML格式的代码文件和CSS格式的代码文件;(5)包括HTML格式的代码文件和JS格式的代码文件;(6)包括CSS格式的代码文件和JS格式的代码文件;(7)包括HTML格式的代码文件、CSS格式的代码文件和JS格式的代码文件。
下面分别对上述不同类型的初始代码文件进行具体描述。
(1)仅包括HTML格式的代码文件
本申请实施例中,可以对HTML格式的代码文件进行解析,从而得到HTML格式的代码文件对应的AST代码结构。具体地,可以采用语言解析器(HTML5Parser)对HTML格式的代码文件进行解析,或者也可以采用其它解析工具对HTML格式的代码文件进行解析,具体不做限定。
示例性地,HTML格式所对应的AST代码结构中单个节点的结构可以如下所示:
(2)仅包括CSS格式的代码文件
本申请实施例中,可以对CSS格式的代码文件进行解析,从而得到CSS格式的代码文件对应的AST代码结构。具体地,开发人员可以按照预设的规则,对CSS格式的代码文件进行解析;开发人员也可以采用CSS格式的代码文件转AST的工具来进行解析,具体不做限定。
(3)仅包括JS格式的代码文件
本申请实施例中,可以对JS格式的代码文件进行解析,从而得到JS格式的代码文件对应的AST代码结构。
具体地,与HTML格式的代码文件和CSS格式的代码文件相比,对JS格式的代码文件进行解析的过程稍显复杂。具体包括以下过程:
首先,需要进行应用程序编程接口(Application Programming Interface,API)的转换,即可以将待生成的小程序的API进行封装,以便后续调用。
其次,需要进行框架层的转换,框架层的转换包括了生命周期函数的转换和待生成的小程序语法的转换。在进行框架层的转换时,可以采用Esprima解析器对JS格式的代码文件进行解析,或者也可以采用其它解析工具对JS格式的代码文件进行解析,具体不做限定。
示例性地,参考小程序移植的场景,假设需要将某个小程序在微信平台中的“methods”功能组件移植到头条平台,其中,该小程序在微信平台中的“methods”功能组件的代码文件如下:
采用Esprima解析器对上述小程序在微信平台中的“methods”功能组件的代码文件进行解析后,得到的AST代码结构如下:
从上述AST代码结构中可以看出,每个节点都有一个“type”,根节点的“type”为“Program”。属性依赖于节点的“type”,也就是说,AST代码结构决定了这个节点的类型。每个“type”都有其对应的节点属性,不可以单独更改。
4)包括HTML格式的代码文件和CSS格式的代码文件
本申请实施例中,可以分别对HTML格式的代码文件和CSS格式的代码文件进行解析,从而得到HTML格式的代码文件对应的AST代码结构和CSS格式的代码文件对应的AST代码结构。
(5)包括HTML格式的代码文件和JS格式的代码文件
本申请实施例中,可以分别对HTML格式的代码文件和JS格式的代码文件进行解析,从而得到HTML格式的代码文件对应的AST代码结构和JS格式的代码文件对应的AST代码结构。
(6)包括CSS格式的代码文件和JS格式的代码文件
本申请实施例中,可以分别对CSS格式的代码文件和JS格式的代码文件进行解析,从而得到CSS格式的代码文件对应的AST代码结构和JS格式的代码文件对应的AST代码结构。
(7)包括HTML格式的代码文件、CSS格式的代码文件和JS格式的代码文件
本申请实施例中,可以分别对HTML格式的代码文件、CSS格式的代码文件和JS格式的代码文件进行解析,从而得到HTML格式的代码文件对应的AST代码结构、CSS格式的代码文件对应的AST代码结构及JS格式的代码文件对应的AST代码结构。
在其它可能的实现方式中,也可以采用正则替换的方式对初始代码文件进行解析,或者,还可以综合正则替换和AST代码结构两种方式对初始代码文件进行解析,本领域技术人员可以根据经验和实际情况选择合适的解析方式,具体不做限定。
步骤203中,在对功能组件的初始代码文件进行解析之后,可以根据功能组件的初始代码文件、初始代码文件对应的初始代码结构以及预先存储的目标平台的标识对应的参考代码结构,来确定功能组件在目标平台中的目标代码文件。采用先调整代码结构,再确定目标代码文件的方式,有利于提高目标代码文件的准确度。具体地,可以根据预先存储的目标平台的标识对应的参考代码结构对初始代码文件对应的初始代码结构进行调整,得到功能组件在目标平台中的目标代码结构,进而可以根据功能组件的初始代码文件和目标代码结构,确定功能组件在目标平台中的目标代码文件。
以HTML格式的代码文件为例,图3示例性示出了本申请实施例提供的一种HTML格式的目标代码文件的生成示意图。如图3所示,具体包括如下步骤:
步骤301,采用HTML5Parser语言解析器对第一HTML格式的代码文件进行解析。
其中,第一HTML格式的代码文件可以是指待生成的小程序中任一功能组件对应的HTML格式的代码文件。
以小程序开发场景为例,第一HTML格式的代码文件可以是开发人员针对任一功能组件编写的代码文件,此处开发人员编写的代码文件可以是指通用的代码文件,并非适用于某个平台的代码文件。
以小程序移植场景为例,第一HTML格式的代码文件可以是从源平台中获取到的任一功能组件对应的代码文件。此处,从源平台中获取到的任一功能组件对应的代码文件可以是指适用于源平台的代码文件,但不一定适用于目标平台。其中,源平台可以预先设置有待生成的小程序。
步骤302,获取解析后的第一HTML格式的代码文件对应的第一AST代码结构。
以小程序开发场景为例,第一AST代码结构可以是通用的代码结构,并非适用于某个平台的代码结构。
以小程序移植场景为例,第一AST代码结构可以是适用于源平台的代码结构,但不一定适用于目标平台。
步骤303,根据目标平台对应的参考代码结构对第一AST代码结构进行调整。
以小程序开发场景为例,可以比较目标平台对应的参考代码结构对通用代码结构的之间的差异,然后根据这个差异对第一AST代码结构进行调整。
以小程序移植场景为例可以比较目标平台对应的参考代码结构与源平台对应的参考代码结构之间的差异,然后根据这个差异对第一AST代码结构进行调整。
需要说明的是,上文所描述的“差异”可以包括组件名称、事件绑定、数据绑定等多个方面的差异。
步骤304,获取调整后的第二AST代码结构。
其中,第二AST代码结构可以是指适用于目标平台的目标代码结构。
步骤305,根据第一HTML格式的代码文件和第二AST代码结构,进行反向解析,得到适用于目标平台的第二HTML格式的代码文件。
其中,第二HTML格式的代码文件可以是指目标平台中的目标代码文件。
为了更加清楚地描述图3所示出的示意图,下面进行举例说明。
假设需要将HTML格式的代码文件中的“<view></view>”修改为目标平台适用的目标代码文件中的“<div></div>”,则具体过程如下:
首先,可以采用HTML5Parser对第一HTML格式的代码文件,得到对应的第一AST语法结构。然后,可以采用如html.walk之类的方式遍历第一AST语法结构中的每个节点,并修改标签名称(即将“<view></view>”修改为“<div></div>”),从而得到第二AST语法结构。最后,可以根据第一HTML格式的代码文件和第二AST语法结构,进行反向解析,得到第二HTML格式的代码文件。
以CSS格式的代码文件为例,与HTML格式的代码文件类似,如图4所示,为本申请实施例提供的一种CSS格式的目标代码文件的生成示意图,具体包括如下步骤:
步骤401,采用预设规则对初始的CSS格式的代码文件进行解析,得到解析后的初始的CSS格式的代码文件对应的初始的AST代码结构。
步骤402,根据目标平台对应的参考代码结构对初始的AST代码结构进行调整,得到目标AST代码结构。
步骤403,根据初始的CSS格式的代码文件和目标AST代码结构,进行反向解析,得到适用于目标平台的目标CSS格式的代码文件。
以JS格式的代码文件为例,图5示例性示出了本申请实施例提供的一种JS格式的目标代码文件的生成示意图。如图5所示,具体包括如下步骤:
步骤501,将待生成的小程序的API进行封装。
步骤502,采用Esprima工具对初始的JS格式的代码文件进行解析,得到JS格式的代码文件对应的AST代码结构。
步骤503,根据目标平台对应的参考代码结构对AST代码结构进行调整,得到目标AST代码结构。
步骤504,根据初始的JS格式的代码文件和目标AST代码结构,进行反向解析,得到适用于目标平台的JS格式的代码文件。
考虑到小程序运行的过程中,随着运行时间的延长,会面临版本更新的问题,因此,基于同样的发明构思,图6示例性示出了本申请实施例提供的一种小程序的更新方法所对应的流程示意图,如图6所示,具体包括如下步骤:
步骤601,获取小程序中待更新的功能组件对应的更新代码文件以及待更新的功能组件对应的更新平台的标识。
其中,待更新的功能组件可以是指需要更新的功能组件。比如,某个小程序中需要更新“认证组件”,即“认证组件”可以为待更新的功能组件。
更新平台可以是指需要更新的平台。比如,运行在平台A中的某个小程序需要更新“认证组件”,即平台A为更新平台。需要说明的是,若该小程序同时在平台B中运行,且在平台B中该小程序无需更新“认证组件”,则平台B并非更新平台。
步骤602,对待更新的功能组件对应的更新代码文件进行解析,得到更新代码文件对应的代码结构。
步骤603,根据待更新的功能组件对应的更新代码文件、更新代码文件对应的代码结构以及预先存储且与更新平台的标识对应的参考代码结构,确定待更新的功能组件在更新平台中的目标更新代码文件。
步骤604,根据目标更新代码文件在更新平台中对待更新组件进行更新。
需要说明的是,上述步骤602至步骤603中,对更新代码文件的解析,以及确定目标更新代码文件的过程可以参考上文步骤202中所描述的方法,此处不再赘述。
如此,针对同一款小程序,一方面,开发人员可以只编写一次待更新的代码文件,经过解析可以生成适用于不同平台的代码文件,从而能够降低开发人员的工作压力,节省小程序的更新时间,提高了小程序更新的效率。另一方面,即便该小程序在不同的平台中存在一定差异,比如在平台A中具有功能组件a,但在平台B中不具有功能组件a,那么,在功能组件a有更新需求时,可以有针对性地只更新平台A中的功能组件a,即本申请实施例提供的方法也可以针对不同的平台分别进行更新,从而能够满足不同平台的更新需求。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
图7示例性示出了本申请实施例提供的一种小程序的生成装置的结构示意图。如图7所示,该装置具有实现上述小程序的生成方法的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置可以包括:获取单元701,处理单元702和生成单元703。
获取单元701,用于获取待生成的小程序对应的多个功能组件的初始代码文件和运行所述待生成的小程序的目标平台的平台标识;
处理单元702,用于对所述功能组件的初始代码文件进行解析,得到所述初始代码文件对应的初始代码结构;并根据所述功能组件的初始代码文件、所述初始代码文件对应的初始代码结构以及预先存储且与所述平台标识对应的参考代码结构,确定所述功能组件在所述目标平台中的目标代码文件;
生成单元703,用于根据所述功能组件在所述目标平台中的目标代码文件,生成所述待生成的小程序。
在一种可能的实现方式中,所述处理单元702具体用于:
根据所述预先存储且与所述平台标识对应的参考代码结构对所述初始代码文件对应的初始代码结构进行调整,得到所述功能组件在所述目标平台中的目标代码结构;
根据所述功能组件的初始代码文件和所述目标代码结构,确定所述功能组件在所述目标平台中的目标代码文件。
在一种可能的实现方式中,所述初始代码结构为抽象语法树AST代码结构。
在一种可能的实现方式中,所述功能组件的初始代码文件包括超文本标记语言HTML格式的代码文件、层叠样式表CSS格式的代码文件和脚本语言JS格式的代码文件中的至少一项;
所述处理单元702具体用于:
所述HTML格式的代码文件进行解析,得到所述HTML格式的代码文件对应的AST代码结构;
以及对所述CSS格式的代码文件进行解析,得到所述CSS格式的代码文件对应的AST代码结构;
以及对所述JS格式的代码文件进行解析,得到所述JS格式的代码文件对应的AST代码结构。
图8示例性示出了本申请实施例提供的一种小程序的更新装置的结构示意图。如图8所示,该装置具有实现上述小程序的更新方法的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置可以包括:获取单元801,处理单元802和更新单元803。
获取单元801,用于获取小程序中待更新的功能组件对应的更新代码文件以及所述待更新的功能组件对应的更新平台的标识;
处理单元802,用于对所述待更新的功能组件对应的更新代码文件进行解析,得到所述更新代码文件对应的代码结构;
所述处理单元802,还用于根据所述待更新的功能组件对应的更新代码文件、所述更新代码文件对应的代码结构以及预先存储且与所述更新平台的标识对应的参考代码结构,确定所述待更新的功能组件在所述更新平台中的目标更新代码文件;
更新单元803,用于根据所述目标更新代码文件在所述更新平台中对所述待更新组件进行更新。
在一种可能的实现方式中,所述处理单元802具体用于:
根据所述预先存储且与所述更新平台的标识对应的参考代码结构对所述更新代码文件对应的代码结构进行调整,得到所述待更新的功能组件在所述更新平台中的目标更新代码结构;
根据所述待更新的功能组件对应的更新代码文件和所述目标更新代码结构,确定所述待更新的功能组件在所述更新平台中的目标更新代码文件。
在一种可能的实现方式中,所述更新代码文件对应的代码结构为抽象语法树AST代码结构。
在一种可能的实现方式中,所述待更新的功能组件对应的更新代码文件包括超文本标记语言HTML格式的代码文件、层叠样式表CSS格式的代码文件和脚本语言JS格式的代码文件中的至少一项;
所述处理单元802具体用于:
对所述HTML格式的更新代码文件进行解析,得到所述HTML格式的代码文件对应的AST代码结构;
以及对所述CSS格式的更新代码文件进行解析,得到所述CSS格式的代码文件对应的AST代码结构;
以及对所述JS格式的更新代码文件进行解析,得到所述JS格式的代码文件对应的AST代码结构。
在示例性实施例中,还提供了一种计算机可读存储介质,所述存储介质中存储有计算机程序或智能合约,所述计算机程序或智能合约被节点加载并执行以实现上述实施例提供的事务处理方法。可选地,上述计算机可读存储介质可以是只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(Random Access Memory,RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本领域的技术人员可以清楚地了解到本申请实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (10)
1.一种小程序的生成方法,其特征在于,所述方法包括:
获取待生成的小程序所对应功能组件的初始代码文件和运行所述待生成的小程序的目标平台的平台标识;
对所述功能组件的初始代码文件进行解析,得到所述初始代码文件对应的初始代码结构;
根据所述功能组件的初始代码文件、所述初始代码文件对应的初始代码结构以及预先存储且与所述平台标识对应的参考代码结构,确定所述功能组件在所述目标平台中的目标代码文件;
根据所述功能组件在所述目标平台中的目标代码文件,生成所述待生成的小程序。
2.根据权利要求1所述的方法,其特征在于,根据所述功能组件的初始代码文件、所述初始代码文件对应的初始代码结构以及预先存储且与所述平台标识对应的参考代码结构,确定所述功能组件在所述目标平台中的目标代码文件,包括:
根据所述预先存储且与所述平台标识对应的参考代码结构对所述初始代码文件对应的初始代码结构进行调整,得到所述功能组件在所述目标平台中的目标代码结构;
根据所述功能组件的初始代码文件和所述目标代码结构,确定所述功能组件在所述目标平台中的目标代码文件。
3.根据权利要求1所述的方法,其特征在于,所述初始代码结构为抽象语法树AST代码结构。
4.根据权利要求3所述的方法,其特征在于,所述功能组件的初始代码文件包括超文本标记语言HTML格式的代码文件、层叠样式表CSS格式的代码文件和脚本语言JS格式的代码文件中的至少一项;
对所述功能组件的初始代码文件进行解析,得到所述初始代码文件对应的初始代码结构,包括:
对所述HTML格式的代码文件进行解析,得到所述HTML格式的代码文件对应的AST代码结构;
以及对所述CSS格式的代码文件进行解析,得到所述CSS格式的代码文件对应的AST代码结构;
以及对所述JS格式的代码文件进行解析,得到所述JS格式的代码文件对应的AST代码结构。
5.一种小程序的更新方法,其特征在于,所述方法还包括:
获取小程序中待更新的功能组件对应的更新代码文件以及所述待更新的功能组件对应的更新平台的标识;
对所述待更新的功能组件对应的更新代码文件进行解析,得到所述更新代码文件对应的代码结构;
根据所述待更新的功能组件对应的更新代码文件、所述更新代码文件对应的代码结构以及预先存储且与所述更新平台的标识对应的参考代码结构,确定所述待更新的功能组件在所述更新平台中的目标更新代码文件;
根据所述目标更新代码文件在所述更新平台中对所述待更新组件进行更新。
6.一种小程序的生成装置,其特征在于,所述装置包括:
获取单元,用于获取待生成的小程序对应的功能组件的初始代码文件和运行所述待生成的小程序的目标平台的平台标识;
处理单元,用于对所述功能组件的初始代码文件进行解析,得到所述初始代码文件对应的初始代码结构;并根据所述功能组件的初始代码文件、所述初始代码文件对应的初始代码结构以及预先存储且与所述平台标识对应的参考代码结构,确定所述功能组件在所述目标平台中的目标代码文件;
生成单元,用于根据所述功能组件在所述目标平台中的目标代码文件,生成所述待生成的小程序。
7.根据权利要求6所述的装置,其特征在于,所述处理单元具体用于:
根据所述预先存储且与所述平台标识对应的参考代码结构对所述初始代码文件对应的初始代码结构进行调整,得到所述功能组件在所述目标平台中的目标代码结构;
根据所述功能组件的初始代码文件和所述目标代码结构,确定所述功能组件在所述目标平台中的目标代码文件。
8.根据权利要求6所述的装置,其特征在于,所述初始代码结构为抽象语法树AST代码结构。
9.根据权利要求8所述的装置,其特征在于,所述功能组件的初始代码文件包括超文本标记语言HTML格式的代码文件、层叠样式表CSS格式的代码文件和脚本语言JS格式的代码文件中的至少一项;
所述处理单元具体用于:
对所述HTML格式的代码文件进行解析,得到所述HTML格式的代码文件对应的AST代码结构;
以及对所述CSS格式的代码文件进行解析,得到所述CSS格式的代码文件对应的AST代码结构;
以及对所述JS格式的代码文件进行解析,得到所述JS格式的代码文件对应的AST代码结构。
10.一种小程序的更新装置,其特征在于,所述装置还包括:
获取单元,用于获取小程序中待更新的功能组件对应的更新代码文件以及所述待更新的功能组件对应的更新平台的标识;
处理单元,用于对所述待更新的功能组件对应的更新代码文件进行解析,得到所述更新代码文件对应的代码结构;
所述处理单元,还用于根据所述待更新的功能组件对应的更新代码文件、所述更新代码文件对应的代码结构以及预先存储且与所述更新平台的标识对应的参考代码结构,确定所述待更新的功能组件在所述更新平台中的目标更新代码文件;
更新单元,用于根据所述目标更新代码文件在所述更新平台中对所述待更新组件进行更新。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910245927.4A CN109947433A (zh) | 2019-03-28 | 2019-03-28 | 一种小程序的生成方法、更新方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910245927.4A CN109947433A (zh) | 2019-03-28 | 2019-03-28 | 一种小程序的生成方法、更新方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109947433A true CN109947433A (zh) | 2019-06-28 |
Family
ID=67012647
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910245927.4A Pending CN109947433A (zh) | 2019-03-28 | 2019-03-28 | 一种小程序的生成方法、更新方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109947433A (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110347387A (zh) * | 2019-07-09 | 2019-10-18 | 湖南微谷云科技有限公司 | 移动端轻应用创建方法及*** |
CN110704053A (zh) * | 2019-09-03 | 2020-01-17 | 五八有限公司 | 一种样式信息的处理方法及装置 |
CN110780874A (zh) * | 2019-10-25 | 2020-02-11 | 北京百度网讯科技有限公司 | 用于生成信息的方法和装置 |
CN110888645A (zh) * | 2019-10-12 | 2020-03-17 | 贝壳技术有限公司 | 一种转换为小程序的方法、装置和存储介质 |
CN111045707A (zh) * | 2019-12-20 | 2020-04-21 | 深圳市珍爱捷云信息技术有限公司 | 小程序的更新方法、装置、计算机设备和存储介质 |
CN111338633A (zh) * | 2020-02-10 | 2020-06-26 | Oppo(重庆)智能科技有限公司 | 免安装文件生成方法、装置及电子设备 |
CN111367527A (zh) * | 2020-02-18 | 2020-07-03 | 北京字节跳动网络技术有限公司 | 一种语言处理的方法、装置、介质和电子设备 |
CN111381825A (zh) * | 2020-03-06 | 2020-07-07 | 北京五八信息技术有限公司 | 一种小程序的生成方法和装置 |
CN111796829A (zh) * | 2020-05-19 | 2020-10-20 | 北京三快在线科技有限公司 | 小程序更新方法、装置、电子设备及计算机可读存储介质 |
CN113010157A (zh) * | 2021-03-08 | 2021-06-22 | 北京达佳互联信息技术有限公司 | 一种代码生成方法及装置 |
WO2021143371A1 (zh) * | 2020-01-16 | 2021-07-22 | 支付宝(杭州)信息技术有限公司 | 一种小程序页面的生成方法、装置及设备 |
CN113672224A (zh) * | 2021-08-20 | 2021-11-19 | 上海哔哩哔哩科技有限公司 | 小程序页面代码生成方法、装置及计算机设备 |
CN114625379A (zh) * | 2022-05-16 | 2022-06-14 | 杭州兑吧网络科技有限公司 | H5项目源码的生成方法及h5项目源码开发*** |
WO2023035563A1 (zh) * | 2021-09-10 | 2023-03-16 | ***股份有限公司 | 小程序跨应用迁移方法、设备、终端、***及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015184756A (ja) * | 2014-03-20 | 2015-10-22 | 東芝テック株式会社 | プログラム変換装置及び変換処理プログラム |
CN108268262A (zh) * | 2017-12-27 | 2018-07-10 | 广东耐思尼克信息技术有限公司 | 实现将html转换为微信小程序的方法、装置及*** |
CN108664248A (zh) * | 2018-05-14 | 2018-10-16 | 北京汉能光伏投资有限公司 | 一种微信小程序的生成方法及装置 |
CN109032691A (zh) * | 2018-06-25 | 2018-12-18 | 腾讯科技(深圳)有限公司 | 一种小程序运行方法、装置及存储介质 |
-
2019
- 2019-03-28 CN CN201910245927.4A patent/CN109947433A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015184756A (ja) * | 2014-03-20 | 2015-10-22 | 東芝テック株式会社 | プログラム変換装置及び変換処理プログラム |
CN108268262A (zh) * | 2017-12-27 | 2018-07-10 | 广东耐思尼克信息技术有限公司 | 实现将html转换为微信小程序的方法、装置及*** |
CN108664248A (zh) * | 2018-05-14 | 2018-10-16 | 北京汉能光伏投资有限公司 | 一种微信小程序的生成方法及装置 |
CN109032691A (zh) * | 2018-06-25 | 2018-12-18 | 腾讯科技(深圳)有限公司 | 一种小程序运行方法、装置及存储介质 |
Non-Patent Citations (1)
Title |
---|
WEB手艺人: "AST—小程序间的互转", 《HTTPS://MP.WEIXIN.QQ.COM/S/RCTTEAYWQ-HKRFNUYFEU7W》 * |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110347387A (zh) * | 2019-07-09 | 2019-10-18 | 湖南微谷云科技有限公司 | 移动端轻应用创建方法及*** |
CN110704053A (zh) * | 2019-09-03 | 2020-01-17 | 五八有限公司 | 一种样式信息的处理方法及装置 |
CN110704053B (zh) * | 2019-09-03 | 2023-05-23 | 五八有限公司 | 一种样式信息的处理方法及装置 |
CN110888645A (zh) * | 2019-10-12 | 2020-03-17 | 贝壳技术有限公司 | 一种转换为小程序的方法、装置和存储介质 |
CN110780874A (zh) * | 2019-10-25 | 2020-02-11 | 北京百度网讯科技有限公司 | 用于生成信息的方法和装置 |
CN111045707A (zh) * | 2019-12-20 | 2020-04-21 | 深圳市珍爱捷云信息技术有限公司 | 小程序的更新方法、装置、计算机设备和存储介质 |
CN111045707B (zh) * | 2019-12-20 | 2024-04-09 | 深圳市珍爱捷云信息技术有限公司 | 小程序的更新方法、装置、计算机设备和存储介质 |
WO2021143371A1 (zh) * | 2020-01-16 | 2021-07-22 | 支付宝(杭州)信息技术有限公司 | 一种小程序页面的生成方法、装置及设备 |
CN111338633A (zh) * | 2020-02-10 | 2020-06-26 | Oppo(重庆)智能科技有限公司 | 免安装文件生成方法、装置及电子设备 |
CN111338633B (zh) * | 2020-02-10 | 2023-08-15 | Oppo(重庆)智能科技有限公司 | 免安装文件生成方法、装置及电子设备 |
CN111367527A (zh) * | 2020-02-18 | 2020-07-03 | 北京字节跳动网络技术有限公司 | 一种语言处理的方法、装置、介质和电子设备 |
CN111367527B (zh) * | 2020-02-18 | 2023-03-28 | 北京字节跳动网络技术有限公司 | 一种语言处理的方法、装置、介质和电子设备 |
CN112965719A (zh) * | 2020-03-06 | 2021-06-15 | 北京五八信息技术有限公司 | 一种小程序的生成方法和装置 |
CN113110825A (zh) * | 2020-03-06 | 2021-07-13 | 北京五八信息技术有限公司 | 一种小程序的接口转换方法和装置 |
CN113110825B (zh) * | 2020-03-06 | 2022-06-03 | 北京五八信息技术有限公司 | 一种小程序的接口转换方法和装置 |
CN111381825B (zh) * | 2020-03-06 | 2021-04-09 | 北京五八信息技术有限公司 | 一种小程序的生成方法和装置 |
CN111381825A (zh) * | 2020-03-06 | 2020-07-07 | 北京五八信息技术有限公司 | 一种小程序的生成方法和装置 |
CN111796829A (zh) * | 2020-05-19 | 2020-10-20 | 北京三快在线科技有限公司 | 小程序更新方法、装置、电子设备及计算机可读存储介质 |
CN111796829B (zh) * | 2020-05-19 | 2024-06-07 | 北京三快在线科技有限公司 | 小程序更新方法、装置、电子设备及计算机可读存储介质 |
CN113010157A (zh) * | 2021-03-08 | 2021-06-22 | 北京达佳互联信息技术有限公司 | 一种代码生成方法及装置 |
CN113672224A (zh) * | 2021-08-20 | 2021-11-19 | 上海哔哩哔哩科技有限公司 | 小程序页面代码生成方法、装置及计算机设备 |
WO2023035563A1 (zh) * | 2021-09-10 | 2023-03-16 | ***股份有限公司 | 小程序跨应用迁移方法、设备、终端、***及存储介质 |
CN114625379A (zh) * | 2022-05-16 | 2022-06-14 | 杭州兑吧网络科技有限公司 | H5项目源码的生成方法及h5项目源码开发*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109947433A (zh) | 一种小程序的生成方法、更新方法及装置 | |
US8949792B2 (en) | Methods and systems for data service development | |
JP5204070B2 (ja) | ソフトウェア成果物の第2バージョンに移行する際に、当該ソフトウェア成果物の第1バージョンになされたカスタマイズをマージするためのツールを生成する方法、コンピュータ使用可能な媒体及びデータ処理システム | |
US20040158820A1 (en) | System for generating an application framework and components | |
US8726231B2 (en) | Support for heterogeneous database artifacts in a single project | |
CN102566984B (zh) | 一种配置参数的方法及装置 | |
Ying et al. | Refactoring legacy AJAX applications to improve the efficiency of the data exchange component | |
WO2012034440A1 (zh) | 一种数据库升级脚本的生成方法和装置 | |
US7908598B2 (en) | Automated creation of model and view code | |
US20070050707A1 (en) | Enablement of multiple schema management and versioning for application-specific xml parsers | |
JP2007249785A (ja) | コンパイルプログラム、仮想データベースリモートアクセス用プログラムの製造方法、及び仮想データベースのリモートアクセス方法 | |
CN108920496B (zh) | 一种渲染方法及装置 | |
US20090013336A1 (en) | Method and system for building compound extensible ajax applications | |
US11474796B1 (en) | Build system for distributed applications | |
CN103744680A (zh) | 一种业务流程处理方法及装置 | |
CN101499063A (zh) | 基于跟踪的数据库模式演进方法及*** | |
EP2557496A1 (en) | Silent migration of business process binaries | |
CN103473034A (zh) | 一种动态发布Web 服务的方法和装置 | |
Pinandito et al. | Framework design for modular web-based application using model-collectionservice-controller-presenter (mccp) pattern | |
US20070050706A1 (en) | Method of xml transformation and presentation utilizing an application-specific parser | |
US20070236369A1 (en) | Configurable importers and resource writers | |
US20040230587A1 (en) | System and method for specifying application services and distributing them across multiple processors using XML | |
US7266814B2 (en) | Namespace based function invocation | |
Zhang et al. | Research of web front-end engineering solution in public cultural service project | |
CN111857710A (zh) | 一种基于内嵌chromium开发Eclipse插件的方法及装置 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190628 |