artTemplate 自动化编译之tmod
一、背景
前端小白的成长历程,一般都会经历html模板的一些问题,jquery template/artTemplate/yayaTemplate等常见的模板使用,这里就不作介绍了。
先谈谈我们为什么要使用模板?
当一个html页面有许多重复,累赘,或者有逻辑,有律可循的时候我们常常会选择一款模板工具,来帮助我们开发。既提升了开发效率,也可以帮我们组织代码可阅读性,这是优点,或许也是我们选择它的理由。
当然它也有不可避免的缺点,譬如:
1.怎么优化SEO?(这个问题不是今天所讨论的内容,暂不讨论,有兴趣的可以留言共同探讨)
2.怎么集中管理?
怎么集中管理?这是啥意思!相信大家的模板都是这么使用的:
html:
<div id="content1"></div>
<div id="content2"></div>
<div id="content3"></div>
... <script id="XXXtmpl1" type="text/XXXtempate">
//模板代码1
</script> <script id="XXXtmpl2" type="text/XXXtempate">
//模板代码2
</script> <script id="XXXtmpl3" type="text/XXXtempate">
//模板代码3
</script>
... javascirpt: $('#content1').html($("#XXXtmpl").template);
$('#content1').html($("#XXXtmpl").template);
$('#content1').html($("#XXXtmpl").template);
...
//这里的代码只是说明这样个意思,不用介意它的语法,各个模板大同小异
好了,给了上面的伪代码,是不是觉得你还在遵循这样一种方式,去书写你的代码?当然,这样的代码是正确的,没有什么大问题。但是在前端自动化,或者前端模块化风靡的现在,上面的代码或许有点low了。
1.导致每个页面都有模板客户端解析,性能或多或少有一定的问题;
2.每个html页面都很多的模板,管理麻烦,可读性差;
所以.......你想到了什么?
把模板代码都存放到一个文件?或者每个都是单独的文件?Bingo!!!
在之前一个backbone+Marionette+typescript的项目中,框架不是我搭的。(相信你看到这个框架你就知道是个搞过C#的攻城狮搭的,因为活生生把弱类型灵活的javascript,变成了用ts管理的强类型的语言;当然,
并不是说ts不好,通过ts管理的前端工程,维护起来不管封装还是复用还是挺方便的(其实我并不觉得简单,呵呵),题外话啦)这个项目的模板用的dust模板,可能有开发者接触过,这个模板的原理,简单说起来就是:将
模板文件单独存放在一个模板目录,发布的时候通过模板引擎(node或者其他手段)编译到一个js文件,然后只要页面引用这个编译后的文件即可得到相应模板
可是......我们今天讲的也不是dust模板!(博主话唠,不要计较)
之前尝试过自己用node程序去编译jqueryTemplate的模板,当然,我所说的模板也是单独管理,而且我选的模板也就是html格式,因为这样可以用一些编辑器的Emmet语法敲起来快。这时就要自己用node去对模板的html文件打包,然后还要解析,虽然成功了,可是很麻烦,性能也不好;之所以选择jqueryTemplate是因为博主真心觉得它很方便,支持各种嵌套、各种逻辑、各种自定义js回调反正能满足你各种变态需求;但是后来发现一个现成的模板打包工具,是腾讯针对artTemplate的,也就是tmod(这里是今天的
正题了),最可惜的是没找到相关对jqueryTemplate打包编译的工具,所以开发还是遇到了一点限制。
二、artTemplate
时间有限,明日再来...
artTemplate 自动化编译之tmod的更多相关文章
- 在CentOS上构建.net自动化编译环境
我们知道在Windows上我们很容易构建于MSBuild的自动化编译环境,那么在CentOS也是可以的,主要是需要Mono. 在这儿我们选择Jenkins+Gitlab+Mono在C ...
- iOS自动化编译
最近研究了一下iOS的自动化编译,目的是为了简化测试和开发的同学沟通协调的次数,实现测试同学可以随时从网页操作编译SVN最新源码并打包ipa进行测试. 具体思路是通过从配置文件读取需要编译的项目配置列 ...
- VS2008 自动化编译脚本
可以通过调用MSBuild来使VS2008进行自动化编译. 1.新建文本文件,后缀名改为bat 2.文件内加上: ;转到MSBuild.exe路径 c: cd\ cd C:\Windows\Micro ...
- 构建Jenkins自动化编译管理环境
今天研究了一下Jenkins,有了一个粗浅的认识,顺手把构建的过程说一下,后续慢慢补充: (1)Secure CRT 连接到Linux服务器 要注意的一点是,要搞好一个文件传输的路子,否则不好传东西. ...
- 持续集成篇_08_Hudson持续集成服务器的使用(自动化编译、分析、打包、部署)
持续集成篇_08_Hudson持续集成服务器的使用(自动化编译.分析.打包.部署) 1.创建任务 svn用户验证 验证通过 *****五颗*表示每分钟检查svn路径是否有变更,有变更就会重新构建,相当 ...
- vsts~CI/CD实现自动化编译
打开你的vs online,选择build and release标签,进行自动化编译的开发. 一 新建,选择对应的源代码管理,我们以VSTS-GIT为例 二 选择你的项目所应对的开发框架,如.net ...
- Gradle Android最新自动化编译脚本教程
转自:http://blog.csdn.net/changemyself/article/details/39927381 一.前言 Gradle 是以 Groovy 语言为基础,面向Java应用为主 ...
- Makeflie自动生成依赖,自动化编译
在netbeans里开发,有一个重要文件makefile,是用来编译所有的文件. 项目的目录结构如下,扁平的目录结构,如何实现自动化编译,写makefile呢? 第一版 基础版: CC = g++ C ...
- 使用Jenkins + git submodule 实现自动化编译,解决代码安全性问题
道哥的第 030 篇原创 目录 一.一个真实的代码泄漏故事 二.Jenkins 的基本使用 1. Jenkins 是什么? 2. 安装 JDK8 3. 安装 Jenkins 4. 在浏览器中配置 Je ...
随机推荐
- aop配置
前置通知 后置通知 环绕通知 异常通知 定义切面 aop-config 切入点 切面 通知 spring jdbc
- Codeforces Round #341 Div.2 B. Wet Shark and Bishops
题意:处在同一对角线上的主教(是这么翻译没错吧= =)会相互攻击 求互相攻击对数 由于有正负对角线 因此用两个数组分别保存每个主教写的 x-y 和 x+y 然后每个数组中扫描重复数字k ans加上kC ...
- struct2的structs.xml文件配置There is no Action mapped for action name 问题
很久没写过博客,今天重新开始写,新技术太多,只有通过博客才可以不断积累,本人水平有限,如有错误,欢迎指正,谢谢 今天在MAVEN上配置web project的struct2,发现自己忽略了很多问题,再 ...
- 跟我学Windows Azure 三 使用vs2013创建windows azure web site
首先我们需要登陆我们的windows azure上,然后访问 https://manage.windowsazure.cn/publishsettings/index 他会让我们下载我们的订阅证书文件 ...
- $.map和$.extend来复制数组(OA差旅)
$.map:对数组的每个元素调用定义的回调函数并返回包含结果的数组. 对数组用指定的方法. //将原数组中每个元素加 4 转换为一个新数组. //jQuery 代码: $.map( [0,1,2], ...
- 将 expression 转换为数据类型 int 时发生算术溢出
将 expression 转换为数据类型 int 时发生算术溢出错误 2种快速处理方法 1.CONVERT(bigint, 字段名): 2.Cast(字段名 as decimal(18,2)): 这个 ...
- Eclipse中将Java项目转换成Web项目的方法
前言: 用Eclipse开发项目的时候,把一个Web项目导入到Eclipse里会变成了一个java工程,将无法在Tomcat中进行部署运行. 方法: 1.找到.project文件,找到里面的<n ...
- requests 快速入门
requests的请求方式 import requests # 发送请求 r = requests.get('https://github.com/timeline.json') r = reque ...
- delete file by bat
@echo off set logFile=AmazonDeleteFiles.log set Feeds="E:\AmazonProject\AmazonListing\AmazonLis ...
- Android ShapeDrawable无法上色
在Android中的View设置背景时,使用ShapeDrawable有可能出现无法上色的问题(最终背景为黑色),例如,使用如下的代码为控件设置颜色时,控件背景将会变成黑色 ShapeDrawable ...