JavaScript Common Templates (jCT最新版本3.9.12.10)
项目转移到 http://achun.github.com/jCT
开源google svn地址:http://code.google.com/p/jsct/
jCT 是一种 JavaScript Template / JavaScript 前台模板
支持自定义文法标识所以称为 Templates
为 Web 开发提供模板支持的JavaScript工具.
改变 B/S 团队的工作流程,避免无意义的沟通
jCT原创特色,子模板,预览/执行一致性,完全与javascript一致的语法
jCT为了效率,没有使用正则表达式分析模板语法,完全字符串函数分析
jCT代码结构良好,简洁,改造很安逸
意义:后台做后台应该做的,前台做前台该做的,还前后台本色
使用:像使用 php,asp,jsp 做后台一样,用 javascript 在前台实现表现的一切吧
快进入 JavaScript Template 前台模板世界吧!
在 Web 开发中,数据与表现分离是一个很好的设计方法.为了实现这个通常采用模板技术.这些模板技术中大多采用服务器端的方案,服务器端(后台)的方案常有以下问题:
- 数据没有装配前无法预览到希望的结果
- 复杂模板的装配使得管理模块难于控制
- 页面设计人员和后台数据提取人员要频繁沟通
- 后台模板当然都是基于某些固定的语言,可移植性低,因此当语言平台变化时需要用不同的语言"重复的造轮子"
- 给服务器造成一定压力
相对来说基于 JavaScript 的浏览器端(前台)模板天生就摆脱了第 4,5 条问题.(其实其他缺点经过和其它 JavaScript 工具配合也可以解决.) 对于 JavaScript Template 来说比较优秀的要数 trimpath 的 JST 项目了.不过在实际使用中发现 JST 仍然对问题 1,2,3 解决的不好.
jCT 模板的基本设计任务正是要解决这些问题.
2009-12-10:jCT 3.9.12.10 放出,大改变,文档重新发布jCT第三版大改变
2008-10-18:增加成员函数 GetViewContinue 用于递归的调用情况,事实上GetView是先清空输出缓存,然后调用GetViewContinue(GetViewContinue仅仅是写入缓存,但不输出),最后输出缓存
2008-10-18:增加成员函数 ExtendTo 附加到其他对象上
2008-9-11:修复一个Bug,增加正则注释语法版本(正则版本速度将近慢1倍)
Bug:BuildChilds方法中不应该执行RunNow,因为Build中已经执行过一次了.
2008-9-07:jCT 第3版升级,设计思想做了重大调整,详情见jCT第三版简要文档
2008-7-11:jCT 第3版放出,全部重新设计,文法与第2版不再兼容.设计目标仍然一致。
2008-6-11:增加,通过这三个语法,以前的FixDat,ViewBefore 这样和 ViewAfter*就可以取消了,这样更灵活,起个名字吧, 重构
- main 自定义全函数形式,
- entry 自定义函数的入口形式
- outlet 自定义函数的入口形式
2008-4-29: 增加 flash 设施,只执行一次(Flash 一闪而过)
2008-4-22: 增加 FixDat,ViewBefore 这样和 ViewAfter 一起看上去流程设施就完备了一些.
2008-4-20: 存储模板嵌套 已经完成,增加了 viewafter 功能,SVN已经更新,jCT 2.0 定稿. 感谢 javaeye.com 的朋友 jasongreen 提醒以前的demo竟然不支持IE6,现在2.0 定稿这个问题也没有了。由于 wiki没有办法更新,关于 存储模板嵌套 的语法我写到demo中了,原文查看就能发现.详细说明等wiki可以更新了再写吧.
2008-4-18: 这一段的实践中发现,存储模板有嵌套的需求,计划支持存储模板嵌套,呵呵这就要改块结束标记的规则了 ,暂时测试中......
2008-4-12: 实在是对不起大家,4月7日的demo中竟然把jct.js的引用路径写错了,今天改过来了。抱歉! 同时谢谢 chinaunix.net 的朋友 zhaiduo 提醒了我.现在改过来了。
2008-4-7: 修正了一个只有取值表达式模板的Bug,116行加了一行.更改jCT返回对象里的Error结构为{message:String,src:String}
2008-4-5: jCT 第2版 Beta 放出。jCT 第一版已经放弃.
jCT 2 的代码更清晰,设计更合理。所有基本设计目标完全实现.
就从 右侧连接里的 demo 开始吧!
2008-3-31: 计划写第2版的jCT,重新选取一下语法规则的<!--foo-->符号,让看起来更系统一些.初步感觉 # 开头很不科学,貌似有可能与SSI冲突.这个改起来到快,只是现在没有时间,先通知一声. 欲知后事如何!请待jCT2.0版本.