惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
Security Affairs
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Jina AI
Jina AI
P
Palo Alto Networks Blog
GbyAI
GbyAI
大猫的无限游戏
大猫的无限游戏
A
Arctic Wolf
Hugging Face - Blog
Hugging Face - Blog
小众软件
小众软件
Y
Y Combinator Blog
T
The Blog of Author Tim Ferriss
Blog — PlanetScale
Blog — PlanetScale
S
Schneier on Security
V
Vulnerabilities – Threatpost
C
Cybersecurity and Infrastructure Security Agency CISA
雷峰网
雷峰网
T
Tenable Blog
人人都是产品经理
人人都是产品经理
T
Tor Project blog
C
Cyber Attacks, Cyber Crime and Cyber Security
AWS News Blog
AWS News Blog
Microsoft Security Blog
Microsoft Security Blog
J
Java Code Geeks
Scott Helme
Scott Helme
SecWiki News
SecWiki News
C
CERT Recently Published Vulnerability Notes
Recorded Future
Recorded Future
I
InfoQ
Security Archives - TechRepublic
Security Archives - TechRepublic
Help Net Security
Help Net Security
Cloudbric
Cloudbric
C
Check Point Blog
Engineering at Meta
Engineering at Meta
TaoSecurity Blog
TaoSecurity Blog
B
Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园_首页
N
News and Events Feed by Topic
云风的 BLOG
云风的 BLOG
MyScale Blog
MyScale Blog
腾讯CDC
量子位
Application and Cybersecurity Blog
Application and Cybersecurity Blog
K
Kaspersky official blog
Vercel News
Vercel News
F
Full Disclosure
T
Troy Hunt's Blog
Forbes - Security
Forbes - Security
S
Security @ Cisco Blogs

博客园 - Kevin Lin

Happy New Year! HTTP状态码大全 2009年3月 2008年9月-10月 跟ASP.NET MVC一起使用jQuery [摘自千寻网]给鼠标右键增加“见好就收”的功能 ASP.NET 2.0中的URL映射 在.net中使用Gmail发送邮件 [绝对原创]从VS2003(.net1.1)升级到vs2005(.net2.0)全程跟踪记录 使用Asp.net mvc + Linq + mvc_scaffold_gen_setup.exe 生成一个完整的家庭帐册大管家程序 之三 使用Asp.net mvc + Linq + mvc_scaffold_gen_setup.exe 生成一个完整的家庭帐册大管家程序 之二 2008年4月-5月 使用Asp.net mvc + Linq + mvc_scaffold_gen_setup.exe 生成一个完整的家庭帐册大管家程序 之一 XNA Game Studio 2.0 Released版 发布了,好像是前几天的事,但园子里似乎没有讯息嘛 向大家推荐一个不错的休闲游戏 VS2003(.net framework1.1)中,如果让日历控件的“星期”去掉? 农历js脚本 - Kevin Lin - 博客园 WEB开发碰到的问题及经验十八则 - Kevin Lin - 博客园 根据分辨率不同调用不同的css文件 - Kevin Lin - 博客园
[转]jquery的一个模板引擎-zt - Kevin Lin - 博客园
Kevin Lin · 2009-03-10 · via 博客园 - Kevin Lin

一 , 简单介绍

它是一个基于jQuery开发的javascript模板引擎。它主要的作用如下:

1. 通过JavaScript获取JSON形式的数据;

2. 获取一个HTML模板,与数据相结合,生成页面HTML。

二 , 快速上手

先来看一个简单的例子:

<script type="text/javascript" src="jquery-1.2.6.pack.js"></script>
<script type="text/javascript" src="jquery-jtemplates.js"></script>

<script type="text/javascript">
   $(document).ready(function() {
    //初始化数据
    var data = {
     name: '用户列表',
     list_id: '编号89757',
     table: [
      {id: 1, name: 'Rain', age: 22, mail: },
      {id: 2, name: "皮特', age: 24, mail: },
      {id: 3, name: "卡卡', age: 20, mail: },
      {id: 4, name: "戏戏', age: 26, mail: },
      {id: 5, name: "一揪', age: 25, mail: }
     ]
    };
    // 附上模板
    $("#result1").setTemplateElement("template");
    // 给模板加载数据
    $("#result1").processTemplate(data);
   });
</script>

<!-- 模板内容 -->
<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>

<!-- 输出元素 -->
<div id="result1" ></div>

上面代码中,先导入了jQuery.js,然后导入jtemplates.js。

接下来新建了一个data数据的json对象。

var data = {
     ......
};

然后在HTMl页面上增加一个 输出元素 和 一个模板元素:

最后在JS给输出元素 附加模板 和 数据。

这样,运行代码后,出现如下图所示界面。

三 , 加载模板

这次把模板放到一个单独的页面中,而不是直接写在页面里。

新建一个template.html,放入以下代码:

<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>

然后新建一个json文件,名称为cs.json,代码如下:

{
name: "用户列表",
list_id: "编号89757",
    table: [
     {id: 1, name: 'Rain', age: 22, mail: },
     {id: 2, name: "皮特', age: 24, mail: },
     {id: 3, name: "卡卡', age: 20, mail: },
     {id: 4, name: "戏戏', age: 26, mail: },
     {id: 5, name: "一揪', age: 25, mail: }
]
}

在jQuery中,可以通过$.ajax()方法来加载 json文件,代码如下:


<script type="text/javascript">
$(function(){
$.ajax({
   type:       "post",
   dataType:   "json",
   url:        "cs.json",
success:    function(data){
                    .....
                }
});
});
</script>

在success回调函数里,首先需要设置模板,然后需要添加数据。如下代码所示:

success:    function(data){

                    // 设置模板
                   $("#result1").setTemplateURL("template.html?date="+(+new Date()), null, {filter_data: true});
                    //   加载数据
                    $("#result1").processTemplate(data);
                }
}

完整代码如下所示:

$(function(){
$.ajax({
   type:       "post",
   dataType:   "json",
   url:        "cs.json",
success:    function(data){
                    $("#result1").setTemplateURL("template.html?date="+(+new Date()), null, {filter_data: true});
                    $("#result1").processTemplate(data);
                }
});
});

运行代码后,也可以得到上图的界面。

四 ,小结

关于 new Date().getTime()的简写方式:可以参考这篇文章:

http://www.cssrain.cn/article.asp?id=1116

CssRain提供的几个例子,按照官方写的:

点击下载此文件

jtemplates官方首页 :

http://jtemplates.tpython.com/