CN109324798A - 一种JIT即时编译web表单元数据的实现方法 - Google Patents

一种JIT即时编译web表单元数据的实现方法 Download PDF

Info

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
Application number
CN201811072334.4A
Other languages
English (en)
Inventor
李文峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shandong Inspur Genersoft Information Technology Co Ltd
Original Assignee
Shandong Inspur Genersoft Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shandong Inspur Genersoft Information Technology Co Ltd filed Critical Shandong Inspur Genersoft Information Technology Co Ltd
Priority to CN201811072334.4A priority Critical patent/CN109324798A/zh
Publication of CN109324798A publication Critical patent/CN109324798A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/427Parsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; 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即时编译web表单元数据的实现方法
技术领域
本发明涉及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模版引擎生成源代码。
CN201811072334.4A 2018-09-14 2018-09-14 一种JIT即时编译web表单元数据的实现方法 Pending CN109324798A (zh)

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)

* Cited by examiner, † Cited by third party
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 阿里巴巴集团控股有限公司 一种模板渲染的方法、装置及浏览器

Patent Citations (5)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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