现在有许多javascript模板引擎和服务器端的freemarker那些很像,定义模板像下面:
<textarea id="template" style="display:none">
<strong>{$T.name} : {$T.list_id}</strong>
<table>
<tr>
<th>编号</th>
<th>姓名</th>
<th>年龄</th>
<th>邮箱</th>
</tr>
{#foreach $T.table as record}
<tr>
<td>{$T.record.id}</td>
<td>{$T.record.name}</td>
<td>{$T.record.age}</td>
<td>{$T.record.mail}</td>
</tr>
{#/for}
</table>
</textarea>
感觉对html改动较大,pure就不一样了,对美工做的html影响很小。看下面一个例子:
<html>
<head>
<title>PURE Unobtrusive Rendering Engine</title>
<script src="../libs/jquery.js"></script>
<script src="../libs/pure.js"></script>
<style>
.even td { background : #DDD }
.odd td { background : #FFF }
</style>
</head>
<body>
<div style="width:100%; height: 288px; overflow: auto;">
<!-- HTML 模板 -->
<table id="mytb1" class="rc_bk" width="100%" border="0" cellspacing="0" cellpadding="0">
<tr onmouseover="$(this).addClass('highlight');" onmouseout="$(this).removeClass('highlight');">
<td width="25%" class="rownum rightborder"></td>
<td width="25%" class="company rightborder"></td>
<td width="25%" class="amount rightborder"></td>
<td width="25%" class="increment"></td>
</tr>
</table>
</div>
<script>
// the JSON data we want to render
var data = {"rows":[{"company":'adobe',"increment":1552,"amount":14810},{"company":'google',"increment":-541,"amount":7470},{"company":'bea',"increment":865,"amount":6700},{"company":'red',"increment":756,"amount":6643},{"company":'abc',"increment":180,"amount":6239},{"company":'jboss',"increment":609,"amount":6219},{"company":'中华',"increment":-1116,"amount":6036},{"company":'no',"increment":95,"amount":5593},{"company":'sun',"increment":-143,"amount":4660},{"company":'test',"increment":-357,"amount":4541},{"company":'oracle',"increment":-181,"amount":4327},{"company":'dark',"increment":-393,"amount":3252},{"company":'ibm',"increment":-567,"amount":3147}]};
var directive = {
'tr' : { //trigger a loop
'row<-rows' : { // loop on the property animals in the JSON
'td.rownum': function(arg){if(arg.pos == arg.row.items.length - 1) return ''; return arg.pos + 1;},
'td.company': '#{row.company}',
'td.amount': '#{row.amount}',
'td.increment': '#{row.increment}',
'@class+':function(arg){ // add(+) the return value of the function to the class
return (arg.pos % 2 == 0) ? ' even' : ' odd';
}
}
}
};
// run the rendering
$('#mytb1').render( data, directive );
</script>
</body>
</html>
可以不刷新页面把ajax请求的数据多次render同一个模板。
开源项目,功能完善,示例丰富,把事情变简单了。
分享到:
相关推荐
Pure是一个轻量级、高效的JavaScript模板引擎,它与流行的jQuery库无缝集成,专为动态生成HTML内容而设计。在Web应用中,模板引擎扮演着关键角色,它允许开发者将数据和视图逻辑分离,使得前端代码更易于维护和扩展...
6. **替代方案**:虽然JQuery Template已经不再维护,但现在有更现代的模板引擎,如Handlebars、Pug (Jade) 和EJS,它们提供了更强大、更灵活的功能,同时也在Node.js环境中广泛使用。 7. **性能考虑**:在服务器端...
最后,"Scripts"和"caurina"目录可能包含JavaScript库和动画引擎。JavaScript是一种广泛使用的客户端脚本语言,用于增强网页的交互性和动态效果。Caurina Transitions可能是用于实现平滑过渡和动画效果的JavaScript...
5. **事件循环和调用栈**:理解JavaScript引擎如何通过事件队列和调用栈来处理异步任务。 6. **ES6及以后的新特性**:例如箭头函数、模板字符串、解构赋值、类和模块系统等。 接下来是ReactJS,一个由Facebook维护...
browser-sync 是一款 省时的浏览器同步测试工具,browsersync-pure-boilerplate 是一个纯的前端静态资源项目搭载browser-sync 使我们快速启动一个简单的前端项目,实现文件实时刷新
2. **模板引擎**:Jekyll 使用 Liquid 模板语言,允许开发者自定义布局和主题。 3. **GitHub Pages 集成**:Jekyll 是 GitHub Pages 的默认构建工具,可以直接在 GitHub 上托管个人博客。 4. **插件系统**:通过插件...
2. **模板引擎**:如React的JSX,它允许在JavaScript中编写类似HTML的结构,与高阶组件配合使用,构建动态用户界面。 3. **Web组件**:HTML5引入的Web组件标准,可以通过自定义元素、Shadow DOM等特性实现组件化...
本项目是一个基于Scala编程语言的小型示例应用,旨在帮助开发者巩固Scala基础知识,并探索如何结合使用Dropwizard框架、Thymeleaf模板引擎以及Pure-CSS来构建一个简单的博客系统。这个教程将带你走进Scala的世界,...
2. **滑动特效**:幻灯展示的核心在于滑动效果,可能使用了jQuery或Pure JavaScript库来实现平滑的过渡动画。 3. **图片懒加载**:为了提高页面加载速度,可能采用了图片懒加载技术,即只有当图片进入视口时才开始...
4. **JavaScript库与插件**:为了实现瀑布流效果,开发者可能使用了像jQuery Masonry、Isotope或者Pure JavaScript的类似解决方案。这些库和插件可以帮助动态调整元素的位置,以适应用户滚动页面时的变化。 5. **...
解决这类问题需要熟悉所使用的模板引擎语法,并检查模板文件的正确性。 6. **模块导入导出**:在ES6中,模块导入和导出是重要的组织代码方式。如果导入导出语句写错,可能导致找不到模块或者命名冲突。修复这些错误...
3. `views` 文件夹(如果使用模板引擎):存放HTML模板,后端可以填充数据后再发送给客户端。 4. `routes` 文件夹(可选):组织不同的路由逻辑,提高代码可维护性。 5. `package.json`:记录项目的依赖和配置信息,...
7. **模板引擎**:如FreeMarker或Velocity,用于生成HTML页面,展示博客内容。 8. **MVC模式**:模型-视图-控制器设计模式,分离业务逻辑、数据和用户界面。 9. **单元测试**:可能使用JUnit对代码进行测试,确保...
Backbone鼓励使用模板引擎来生成HTML,这使得视图和数据分离,更便于维护。Todo应用可能使用了如Underscore.js的模板功能,通过JavaScript变量动态生成HTML内容。 6. **Backbone.sync** Backbone.sync是数据同步...
了解如何优化React Native应用的性能,例如使用PureComponent和shouldComponentUpdate,以及利用React Native的` YellowBox `警告来识别和修复性能瓶颈。 10. **调试工具** 使用Chrome DevTools、React Native ...
- 在React Native中,JavaScript运行在JavaScript引擎中,通过Bridge与原生代码进行通信。 3. **React Native组件**: - `View`是最基础的容器组件,类似于HTML中的div元素,用于组织其他组件。 - `Text`组件...
后端技术栈由Jekyll和Jade模板引擎组成。Jekyll是一款静态站点生成器,它将Markdown和文本模板转换为静态HTML和CSS,非常适合用于博客或个人网站。通过使用Jekyll,开发者可以利用Markdown编写内容,同时利用YAML ...
5. **函数式编程**:JavaScript支持函数式编程风格,如高阶函数(Higher-Order Functions)、纯函数(Pure Functions)和柯里化(Currying)。函数式编程能帮助写出简洁、无副作用的代码。 6. **模块化**:通过...
2. **JavaScript和ES6+语法**:JavaScript是React Native的主要编程语言,因此需要掌握ES6及以上的语法特性,如箭头函数、类、模板字符串、解构赋值、Promise等。 3. **Redux或MobX状态管理**:为了在整个应用中...
8. **SEO优化**:考虑到网站的搜索引擎排名,模板应遵循SEO最佳实践,如合理使用meta标签、关键词优化和提供清晰的URL结构。 9. **无障碍设计**:遵循WCAG(Web Content Accessibility Guidelines)标准,确保视障...