- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
下一代jQuery模板JsRender
JsRedner和JsViews(JsViews是再JsRender基础上的进一步封装)被称为下一代的jQuery模板,官方地址:/BorisMoore/JsRender/BorisMoore/jsviews
jQuery模板是一个javascript引擎(抄的、这个东东太高深了),他最直接的作用就是:1、代码重用,减少代码量;(貌似还更容易编写)2、抛弃繁琐的字符串拼接、提高代码可见性、简化维护。
为什么需要模板总之,我是写过无数这样蛋疼的代码:
var html = ;$.each(data.persons, function (i, item) {
html += trtd + item.FirstName + /tdtda href=/Person/Edit/ + item.PersonID + Edit/a | a href=/Person/Details/ + item.PersonID + Details/a | a href=/Person/Delete/ + item.PersonID + Delete/a/td/tr;
});$(#XXX).append(html); 如果觉得这样还是不明显,可以参见ASP.NET MVC利用PagedList分页(二)PagedList+Ajax+JsRender中的第四部分,这样写很明显的坏处就是:这样的代码可见性太低,很难维护。或许你几个月之后再来看你的代码,你要花半个小时甚至更多才能得出代码的展示结构。下面来看个JsRender的例子:
//Templates
script type=text/x-JsRender id=personListTemplate
{{for persons}}
tr
td{{:FirstName}}/td
td
a href=/Person/Edit/{{:PersonID}}Edit/a |
a href=/Person/Details/{{:PersonID}}Details/a |
a href=/Person/Delete/{{:PersonID}}Delete/a
/td
/tr
{{/for}}
/script
//Render Data
var html = $(#personListTemplate).render(data);
//Insert into Container
$(#XXX).append(html);
? 代码的结构确实清晰可见了,但是代码越看越多了。首先,这是错觉,因为这里的东东都是严格换行了的。其次,这里省去了item、each等字符复杂字符,貌似更容易编写了。JsRender和jQuery Template
既然JsRender是下一代jQuery模板,那么谁是上一代模板呢?jQuery Template。jQuery Template的特点这里就不废话了,说说JsRedner和jQuery Template的差距:
1、JsRender渲染非常快,网上说的是“和最快一样快”(当然我也不知道他到底有多快)。对于简单的模板的渲染,JsRender的渲染速度比Js Template可以快20倍。
2、JsRender对Dom和jQuery不存在任何依赖(注:不依赖并不是说不使用...)。在jQuery Template 必须用$.template(name,XXX)标记模板,然后渲染。JsRedner不用,他甚至可以直接渲染字符串。
3、JsRender和jQuery Template相比,JsRender仅仅需要更少的代码,2就是一个例子。
JsRender三要素和行为
从上面贴的代码可以看出,JsRender需要三要素:模板(Template)、容器(Container:简单。。。)、数据(Data:数据可以使各种js对象:如数组,object等等)。主要行为为:渲染模板、将渲染结果插入容器(这个太简单了)。说下渲染模板先。。。
JsRender渲染模板
1、无需编译直接渲染:
var html = $(#XXXXX).render(data); // XXX代表某个脚本标记,也就是上面的script id=XXX type=text/x-JsRender/script
2、渲染前编译:
/*A、获取模板对象的方式编译*/
var xxxT
文档评论(0)