【技术实现步骤摘要】
本专利技术涉及前端开发
,特别涉及一种基于模块化思想的模板框架设计方法及系统。
技术介绍
Web应用的普及使得前端应用复杂度大大提高,直接导致网站前端规模不断扩大,前端开发出现了代码规模大、组织维护困难、代码复用性低、扩展性差等问题。因此,建立合理的前端开发架构,并遵循开发标准和规范将越来越重要。从页面的角度来看,当前以Ajax为主的前端开发方式在与服务器交互时存在着一个问题:频繁的数据交互导致频繁的页面渲染。数据从后台传到前端时,需要将这些数据渲染到相应的DOM结构中,需要前端开发工作者做很大量的字符串拼接及一些其他冗余工作,这就为代码开发者增加了代码开发和维护的复杂度,代码可读性也变得很差。换言之,目前Web开发中常用的ajax等一些技术获得数据,再于相应的JavaScript代码中进行HTML字符串与相应数据组合拼接,填充到相应页面元素中,这样会导致逻辑代码和页面代码混杂在一起,既不容易维护,也不利于测试,例如图1所示,其中,图1(a)为字符串拼接流程,图1(b)为字符串拼接示例。前端模板的出现解决了以上问题,如果能将不变的字符串固定住,将一些逻辑分发在其中,就形成了模板。所谓的网页模板,也就是将网页设计页面中动态会变化的内容块剔除后,保留下相对不会变动的内容或区域,开成这样的设计结构文件后,再由软件分析处理,将数据源(实时计算、其他应用中获取、数据库等)中因需求不同而频繁变更的内容数据按模板要求的格式回填,形成一份完整的网页数据内容,分发给不同需求的用户,这就是网页模板,例如图2所示。目前的前端模板有tmpl、handbars等,具体原理大 ...
【技术保护点】
一种基于模块化思想的模板框架设计方法,其特征在于,包括以下步骤:根据Node.js和预存的后端模板构建预编译阶段模板引擎;构建单例template,并构建config对象和cache对象,并根据所述单例template、config对象和cache对象构建前端模板引擎;根据所述预编译阶段模板引擎和前端模板引擎得到所述模板框架。
【技术特征摘要】
1.一种基于模块化思想的模板框架设计方法,其特征在于,包括以下步骤:根据Node.js和预存的后端模板构建预编译阶段模板引擎;构建单例template,并构建config对象和cache对象,并根据所述单例template、config对象和cache对象构建前端模板引擎;根据所述预编译阶段模板引擎和前端模板引擎得到所述模板框架。2.根据权利要求1所述的基于模块化思想的模板框架设计方法,其特征在于,所述根据Node.js和预存的后端模板构建预编译阶段模板引擎,进一步包括:根据所述预存的后端模板,在前端采用Node.js在文件预编译阶段构建一个前端预编译模板;通过所述前端预编译模板进行模板继承和模板复用;对于可利用的页面代码,直接采用继承或获取方式直接复用页面代码,并将填充区域填充入待填充的内容;通过所述前端预编译模板将待编译文件处理成对应完整的HTML代码,具体包括:通过所述前端预编译模板得到生成AST树的模板,所述生成AST树的模板并以预存页面为基础,逐步分析所述预存页面的依赖模块,并进行逐步加载及AST再生成,以得到一个完整的AST树,将所有的完整的AST树合并以生成所述完整的HTML代码。3.根据权利要求1所述的基于模块化思想的模板框架设计方法,其特征在于,所述根据所述单例template、config对象和cache对象构建前端模板引擎,进一步包括:构建一个config对象以存储其语法标签及语法字符串转换函数;通过setConfig来进行语法标签的自定义,并在字符串转换函数中,通过匹配相应的关键字,以进行对应函数字符串的生成;构建一个单例template,并将所述单例template的编译方法及所述config对象绑定在所述单例template中,以进行变量的封装;构建一个Cache对象,以存放所有已经渲染过的文件名及对应的渲染函数。4.根据权利要求2所述的基于模块化思想的模板框架设计方法,其特征在于,其中,在采用Node.js获取HTML模板字符串阶段,采用服务器编译方式先将模板字符串文件化,并放到特定位置调度,并在文件生成阶段,采用Node.js处理JS文件,通过正则表达式匹配,将相应的模板文件内容提取出来,插入到相应的引用位置。5.根据权利要求1所述的基于模块化思想的模板框架设计方法,其特征在于,其中,在前端模板编译过程中,通过模板文件名称来获取模板文件内容,通过正则表达式来提取变量所在位置,并将变量声明提前在渲染函数之前,并解析逻辑字符串为相应逻辑语句,通过与普通字符串组合获得相应渲染函数并实例化返回,并在每一次Render函数生成完成并返回时,以文件标识符为唯一ID,将对应函数存储至cache缓存,并执行函数,以完成对前端模板的数据渲染。6.一种基于模块化思想的模板框架设计系统,其特征在于,包括:预编译阶段模板引擎构建模块,所述预编译阶段模板引擎构建模块用于...
【专利技术属性】
技术研发人员:鄂海红,宋美娜,杨婷,
申请(专利权)人:北京邮电大学,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。