CN109324798A - 一种JIT即时编译web表单元数据的实现方法 - Google Patents
一种JIT即时编译web表单元数据的实现方法 Download PDFInfo
- Publication number
- CN109324798A CN109324798A CN201811072334.4A CN201811072334A CN109324798A CN 109324798 A CN109324798 A CN 109324798A CN 201811072334 A CN201811072334 A CN 201811072334A CN 109324798 A CN109324798 A CN 109324798A
- Authority
- CN
- China
- Prior art keywords
- jit
- parameter
- service
- engine
- metadata
- 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
- 238000000034 method Methods 0.000 title claims abstract description 17
- HCHKCACWOHOZIP-UHFFFAOYSA-N Zinc Chemical compound [Zn] HCHKCACWOHOZIP-UHFFFAOYSA-N 0.000 claims description 2
- 239000011701 zinc Substances 0.000 claims description 2
- 229910052725 zinc Inorganic materials 0.000 claims description 2
- 230000006870 function Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/427—Parsing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/43—Checking; Contextual analysis
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种JIT即时编译web表单元数据的实现方法,属于JIT即时编译技术技术领域,本发明主要功能是接收Web表单的Json元数据,使用pug模版引擎生成运行时可执行的源代码。支持使用各种UI控件库,生成可交互的Web表单界面。
Description
技术领域
本发明涉及JIT即时编译技术,尤其涉及一种JIT即时编译web表单元数据的实现方法。
背景技术
JIT(Just-In-Time Compiler)即时编译在Java和C#中都有使用,即使编译器可以将java的字节码或是C#的中间语言转换成可以直接发送给处理器的指令程序。
前端中Angular也提供了JIT技术,将Angular源码即时编译成ES5标准的JS代码,直接在浏览器中运行。
本发明将JIT的概念应用到了Web表单的开发当中,表单设计器通过用户拖拽的交互方式完成程序功能设计(即Web表单)。设计完成后将Web表单的界面布局、样式、交互方式以及交互逻辑保存成Json格式描述文件(即Web表单元数据)。如何能够让Web表单元数据在运行环境中真正运转起来,就需要将Json格式的元数据转换成真正可执行的源代码。这时就需要JIT来完成该项工作。
发明内容
为了解决以上技术问题,本发明提出了一种JIT即时编译web表单元数据的实现方法
本发明主要功能是接收Web表单的Json元数据,使用pug模版引擎生成运行时可执行的源代码。支持使用各种UI控件库,生成可交互的Web表单界面。
主要包括几个步骤:
1)通过命令行接收并解析即时编译的相关配置参数。
配置参数包含:
·Web表单Json元数据的文件目录
·代码生成目录
·界面所使用的UI控件库
2)使用参数创建JIT服务上下文,将服务上下文作为参数传递给JIT即时编译服务并执行服务。
3)使用pug模版引擎解析Web表单Json元数据生成运行时Angular源代码。
4)将源代码输出到指定的文件目录。
在nodejs环境下的命令行中,接收即时编译的配置参数,并对参数进行解析。
使用解析后的命令行参数创建服务上下文,通过IOC容器获取JIT引擎工厂实例,创建JIT引擎,调用引擎的CreateTask方法创建任务,将服务上下文传递给任务并执行任务。
解析服务上下文,创建生成器队列,执行生成器队列,使用pug模版引擎生成运行时的源代码。
根据服务上下文中的源码发布路径,将生成的源代码文件并输出到指定文件目录。
附图说明
图1是本发明的原理示意图。
具体实施方式
下面对本发明的内容进行更加详细的阐述:
本发明的一种JIT即时编译web表单元数据的实现方法,主要包含以下内容:
1、通过nodejs命令行调用JIT服务时,接收编译参数并进行参数解析;
2、使用解析后的命令行参数创建服务上下文,并启动JIT服务;
3、执行服务过程中组织生成器队列,按顺序执行生成器队列,使用pug模版引擎生成源代码;
4、将编译生成后的源代码输出到指定的文件目录。
第一步,nodejs命令行输入指令调用JIT服务,并传入配置参数。
Jit--metaDataPath=’E:/metaData’--publishPath=’E:/publish’--uiLibrary=’kendoui’
第二步,解析指令以及配置参数,调用JIT服务。
第三步,通过工厂创建引擎实例,使用引擎实例创建任务,构建服务上下文,将服务上下文作为参数传递给任务并运行任务。
第四步,组织生成器队列,并执行队列,使用pug模版引擎生成源代码并输出到指定文件目录。
下面是组织生成器队列,并执行队列的源码。
下面是生成器源码:使用pug模版引擎生成源代码并输出到指定文件目录。
Claims (6)
1.一种JIT即时编译web表单元数据的实现方法,其特征在于,
接收Web表单的Json元数据,使用pug模版引擎生成运行时可执行的源代码。
2.根据权利要求1所述的方法,其特征在于,
包括如下几个步骤:
1)通过命令行接收并解析即时编译的相关配置参数;
2)使用参数创建JIT服务上下文,将服务上下文作为参数传递给JIT即时编译服务并执行服务;
3)使用pug模版引擎解析Web表单Json元数据生成运行时Angular源代码;
4)将源代码输出到指定的文件目录。
3.根据权利要求2所述的方法,其特征在于,
配置参数包含:
Web表单Json元数据的文件目录;
代码生成目录;
界面所使用的UI控件库。
4.根据权利要求2所述的方法,其特征在于,
通过nodejs命令行调用JIT服务时,接收编译参数并进行参数解析。
5.根据权利要求4所述的方法,其特征在于,
使用解析后的命令行参数创建服务上下文,通过IOC容器获取JIT引擎工厂实例,创建JIT引擎,调用引擎的CreateTask方法创建任务,将服务上下文传递给任务并执行任务。
6.根据权利要求5所述的方法,其特征在于,
执行服务过程中组织生成器队列,按顺序执行生成器队列,使用pug模版引擎生成源代码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811072334.4A CN109324798A (zh) | 2018-09-14 | 2018-09-14 | 一种JIT即时编译web表单元数据的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811072334.4A CN109324798A (zh) | 2018-09-14 | 2018-09-14 | 一种JIT即时编译web表单元数据的实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109324798A true CN109324798A (zh) | 2019-02-12 |
Family
ID=65265202
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811072334.4A Pending CN109324798A (zh) | 2018-09-14 | 2018-09-14 | 一种JIT即时编译web表单元数据的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109324798A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101807209A (zh) * | 2010-04-14 | 2010-08-18 | 深圳市同洲电子股份有限公司 | 网页制作的方法和***,客户端、服务端 |
CN105739963A (zh) * | 2014-12-12 | 2016-07-06 | 博雅网络游戏开发(深圳)有限公司 | 生成网页的方法和装置 |
US9600272B2 (en) * | 2014-03-27 | 2017-03-21 | Microsoft Technology Licensing, Llc | Hierarchical directives-based management of runtime behaviors |
CN106648587A (zh) * | 2016-09-28 | 2017-05-10 | 福州宇嘉软件科技有限公司 | 一种基于注解的Web应用代码生成方法 |
CN107766344A (zh) * | 2016-08-15 | 2018-03-06 | 阿里巴巴集团控股有限公司 | 一种模板渲染的方法、装置及浏览器 |
-
2018
- 2018-09-14 CN CN201811072334.4A patent/CN109324798A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101807209A (zh) * | 2010-04-14 | 2010-08-18 | 深圳市同洲电子股份有限公司 | 网页制作的方法和***,客户端、服务端 |
US9600272B2 (en) * | 2014-03-27 | 2017-03-21 | Microsoft Technology Licensing, Llc | Hierarchical directives-based management of runtime behaviors |
CN105739963A (zh) * | 2014-12-12 | 2016-07-06 | 博雅网络游戏开发(深圳)有限公司 | 生成网页的方法和装置 |
CN107766344A (zh) * | 2016-08-15 | 2018-03-06 | 阿里巴巴集团控股有限公司 | 一种模板渲染的方法、装置及浏览器 |
CN106648587A (zh) * | 2016-09-28 | 2017-05-10 | 福州宇嘉软件科技有限公司 | 一种基于注解的Web应用代码生成方法 |
Non-Patent Citations (1)
Title |
---|
HAYLEY2016: "前端模板引擎——带你学习Jade/Pug模板引擎", 《CSDN:HTTPS://BLOG.CSDN.NET/QQ_32614411/ARTICLE/DETAILS/81906184》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111881401B (zh) | 基于WebAssembly的浏览器深度学习方法及*** | |
US8645932B2 (en) | Control flow analysis methods and computing devices for converting COBOL-sourced programs to object-oriented program structures | |
CN101697125B (zh) | 一种开发环境转换的方法及装置 | |
KR101385420B1 (ko) | 메타데이터 추출을 통한 동적 언어의 실행 | |
US20090222827A1 (en) | Continuation based declarative definition and composition | |
Bozga et al. | Source-to-source architecture transformation for performance optimization in BIP | |
CN103870260A (zh) | 业务接口开发的方法及*** | |
US10162628B2 (en) | Transactional distributed data analysis and transformation | |
CN115639980A (zh) | 一种低代码平台可拖拽的前端逻辑编排方法及装置 | |
Pérez-Castillo et al. | Reengineering technologies | |
CN107203401A (zh) | 一种前端项目构建方法、装置及*** | |
Guana et al. | Chaintracker, a model-transformation trace analysis tool for code-generation environments | |
CN113031932A (zh) | 项目开发方法、装置、电子设备及存储介质 | |
Brabra et al. | Model-driven orchestration for cloud resources | |
US10387126B2 (en) | Data marshalling optimization via intermediate representation of workflows | |
Remenska et al. | From UML to process algebra and back: An automated approach to model-checking software design artifacts of concurrent systems | |
Daniel et al. | From people to services to ui: Distributed orchestration of user interfaces | |
CN110045950A (zh) | 基于nodejs的静态页面开发脚手架方法 | |
CN105700934A (zh) | 一种智能编译方法和智能编译*** | |
US9612829B2 (en) | System and method for pattern based services extraction | |
CN109324798A (zh) | 一种JIT即时编译web表单元数据的实现方法 | |
Bailis et al. | Research for practice: Tracing and debugging distributed systems; programming by examples | |
CN103678485A (zh) | 虚拟试验流程节点驱动与活动封装*** | |
JP2008293186A (ja) | 鉄鋼プラント制御プログラムの自動生成方法およびその装置 | |
CN114564195A (zh) | 一种基于b/s架构的云cad平台的二次开发方法 |
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 |
Application publication date: 20190212 |
|
RJ01 | Rejection of invention patent application after publication |