发现好多站点都这么用 js 这是什么框架呢

2015-03-24 15:30:30 +08:00
 ohmyga
<script id="aioBuddyTmpl" type="text/plian">
<div class="rencentText">
<span class="choiceText" id="choiceText">点击刚发送的好友或群组,发起会话</span>
</div>
<ul class="aioBuddyLong" id="aioBuddyList">
<%
for(var i = 0, len = list.length; i < len; i++){
var item = list[i],
name = encodeHtml(item.markname || item.nick || item.uin);
var title = '点击发起会话';
var padStyle;
if(padFlag){
padStyle = " padUnhover";
}


var lenReg = function(str){
  return str.replace(/[^x00-xFF]/g,'**').length;
};
var style;
if(lenReg(name) < 7){
style = "text-align:center";
}else{
style = "text-align:left";
}
%>
<li id="aioBuddy_<%=item.uuid%>" cmd="clickAioBuddy" param="<%=item.uin%>" class="aioBuddyItem" title="<%=title%>"><div class="rencentBuddyIcon"><img src="<%=item.avatar%>" /><span></span></div><div style="<%=style%>" class="aioBuddyName"><%=name%></div></li>
<% } %></ul>
</script>
3087 次点击
所在节点    程序员
6 条回复
ETiV
2015-03-24 15:34:35 +08:00
制定个script的type

当为非script的时候,浏览器不解析这段内容,也不显示。所以就可以当成页面内的html模板,以避免再发起请求去加载独立的模板文件。
mcfog
2015-03-24 15:35:51 +08:00
就是最普通的ejs吧

underscore或lodash或ejs都是这样的

http://underscorejs.org/#template
https://lodash.com/docs#template
http://www.embeddedjs.com/
jarlyyn
2015-03-24 16:12:12 +08:00
ejs。

js的字符串不能分行,所以基本采用这样的方案多。
script不管样式加载是否成功,都不会显示的,放在script里问题最少,而且也符合语义。
moxhuis
2015-03-25 17:07:39 +08:00
artTemplate
GuangXiN
2015-03-25 17:26:03 +08:00
这就是个模板而已呀
f0rger
2015-03-25 17:45:57 +08:00
type为text/plain或者text/template的话就不会解析执行。因为是script标签,所以页面也不会显示。
然后就可以通过jq的方法如var tpl = $("#aioBuddyTmpl").html();得到script中的模板内容,调用对应的方法就可以使用了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/179038

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX