基于jquery模板实现页面渲染
来源:互联网 发布:网络带给我们的好处 编辑:程序博客网 时间:2024/06/05 22:46
0. “模板”
模板有点像<在职证明>之类的固定格式的文档, 同一个公司每个人的在职证明格式一样, 唯一的不同是姓名, 身份证和日期. 使用模板的好处是, 不需要再费时费力写在职证明, 只需要找一份在职证明的模板, 然后把自己的姓名填写上去, 找人事盖章就完事了.
在网页中, 任何一个页面都可以使用模板. 比如, 一个新闻页面, 模板定义好哪里是标题, 哪里是正文, 哪里是评论区. 剩下的只需要去数据库搂数据填空就行.
解决方案有两个: jquery的tmpl, angularjs和vuejs的双向绑定
今天主要讲的就是jquery的tmpl来实现更新网页数据的同时不刷新整个页面
1. 完整代码
以下代码转自https://www.cnblogs.com/qixuejia/p/5188505.html
<!DOCTYPE html><html><head> <title>jquery template demo</title> <link rel="stylesheet" href="content/site.css" type="text/css" /> <link rel="stylesheet" href="content/jquery.ui.css" type="text/css" /> <script type="text/javascript" src="scripts/jquery.js"></script> <script type="text/javascript" src="scripts/jquery.ui.js"></script> <script type="text/javascript" src="scripts/jquery.tmpl.js"></script> <script id="myTemplate" type="text/x-jquery-tmpl"> <tr><td>${ID}</td><td>${Name}</td></tr> </script> <script type="text/javascript"> $(function () { var users = [{ ID: 'think8848', Name: 'Joseph Chan' }, { ID: 'aCloud', Name: 'Mary Cheung'}]; $('#myTemplate').tmpl(users).appendTo('#rows'); }); </script> <style type="text/css"> body { padding: 10px; } table { border-collapse: collapse; } </style></head><body> <table cellspacing="0" cellpadding="3" border="1"> <tbody id="rows"> </tbody> </table></body></html>
2 重点
2.1 模板在哪里定义
其中${}是占位符, jquery负责把数据(一般是KeyValue的Map结构), 按Key填充到模板中
<script id="myTemplate" type="text/x-jquery-tmpl"> <tr><td>${ID}</td><td>${Name}</td></tr></script>
2.2 js怎么把数据填空到模板中
$('#myTemplate').tmpl(users).appendTo('#rows');
2.3 数据填空时, 怎么知道哪个数据填到哪个空?
定义模板时, 需要显示指定Key-Value的Key, 这样jquery就自动的按Key填空Value
<tr><td>${ID}</td><td>${Name}</td></tr>
var users = [{ ID: 'think8848', Name: 'Joseph Chan' }, { ID: 'aCloud', Name: 'Mary Cheung'}];
3 思考
“他强任他强, 老子jquery” – 佚名
jquery+jsp在过去10年里所向披靡, 如今, 随着web 2.0深入人心, 交互式网页越来越多, 同样的功能, jquery虽然能实现, 但是冗余的语法徒增了工作量.
和jquery的$(#templateId).tmpl().appendTo(#htmlId)相比, AngularJs和VueJs的双向绑定不仅能在第一次渲染时, 把数据填空到模板, 还支持js变量修改后页面同步刷新.
具体还是看业务场景, 如果明确是静态页面, 对jquery又很熟悉, 那就没必要上angularjs和vuejs. 一切为了业务, 不要做ROP (Resume Oriented Programming -“面向简历开发”)
- 基于jquery模板实现页面渲染
- 出位的template.js 基于jquery的模板渲染插件,简单、好用
- 关于mustacheJS模板渲染页面内容
- velocity模板渲染页面性能优化
- 基于cg实现EPI渲染
- jquery 渲染 html() text() val() document.write() 和ajax实现页面跳转
- Vue.js 通过jQuery ajax获取数据实现更新后重新渲染页面
- 基于jQuery.i18n.properties 实现前端页面的资源国际化
- 基于jQuery实现页面搜索功能----项目实战
- 基于jQuery.i18n.properties插件实现前端页面国际化
- Django模板实现树状数据渲染
- 简单的前端渲染模板实现
- jquery 模板实现方式
- HDR渲染器的实现(基于OpenGL)
- HDR渲染器的实现(基于OpenGL)
- 基于物理的渲染 – 实现篇
- 渲染模板
- 模板 渲染
- 佛爷芸: 机器学习算法原理总结系列---算法基础之(1)机器学习介绍
- 2.尾部的零
- LeetCode #743 Network Delay Time
- 集合总结,NIO总结
- nikto使用方法笔记
- 基于jquery模板实现页面渲染
- 数据结构实验之排序四:寻找大富翁
- 数据库查询
- POJ 1451(0ms)(dnf)(树的灵活建立)
- MySQL —— 目录结构和语句规范
- 数据结构实验之查找七:线性之哈希表
- py_turtle_多角黄花
- c语言基础switch、if、while和for基本用法
- Git管理远程仓库