我是这样使用template.js来异步渲染数据的

时间:2022-11-04 12:22:19

总监的代码用的是define+module.exports,为了效率先没去了解那一块,在github上找了一款功能单一的template.js来使用

https://github.com/yanhaijing/template.js

很迷你,需要适当封装,比如:

//利用template渲染
//tpl_id:模板id
//div_id:渲染在哪
//data:数据
function render(tpl_id,div_id,data){
var tpl = document.getElementById(tpl_id).innerHTML;
var html=template(tpl, {list: data});
document.getElementById(div_id).innerHTML=html;
}

这里的template就是核心方法了.最简单的页面模块如下,还有很多有定义的写法:

<script id="tpl" type="text/html">
<ul>
<%for(var i = 0; i < list.length; i++) {%>
<li><%:=list[i].name%></li>
<%}%>
</ul>
</script>

比如自定义代码可以用<% %>包裹起来,不需要中括号哈,只是为了区别位置

默认写法:<%=[内容]%>

不转义写法:<%:=[内容]%>

转义写法:<%:h=[内容]%>

url转义:<%:u=[内容]%>

我是用template来做什么呢?

同样是页面内筛选,拒绝多次链接数据库.

之前做静态页面时是将所有数据放入缓存中,之后再从缓存中进行下一步业务逻辑.

个人中心则要考虑到信息的实时变化,同时也不能每次筛选都读取数据库.

一开始想着在php里拼接html再渲染,但是脑子总是离不开用php就要刷新的概念.

其实跟template原理一模一样,一个是在php中拼接,一个是template帮你拼接了.

进入订单页面后从接口中获取订单信息,保存在全局变量中.这个全局变量就是以后筛选的源.

点击不同的标签传入不同的参数,筛选出不同的数据再渲染.注意上面的那个方法是可以复用的哈.

如果不同的数据对应不同的模板,只要在页面中写好不同的模板,然后传入不同的模板id就可以实现多数据多模板的渲染了!

我是这样使用template.js来异步渲染数据的的更多相关文章

  1. 我是这样使用template&period;js来异步渲染数据的demo

    直接来代码吧! <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <t ...

  2. template&period;js文档

    参见GitHub:https://github.com/yanhaijing/template.js/ template.js简介: template.js 一款javascript模板引擎,简单,好 ...

  3. 出位的template&period;js 基于jquery的模板渲染插件

    找了好几款基于jquery的模板渲染插件,无一感觉很难用(教程较少.绑定不统一),也可能我智商问题,比如jquery template.js .jtemplate.js. 然后在github上找到这一 ...

  4. template&period;js 数据渲染引擎

    template.js 数据渲染引擎 template.js是一款JavaScript模板引擎,用来渲染页面的. 原理:提前将Html代码放进编写模板 <script id="tpl& ...

  5. js模板(template&period;js)实现页面动态渲染

    template.js是由纯JavaScript编写的第三方模板引擎.点击https://github.com/yanhaijing/template.js可进行下载. 在页头导入模板文件 <s ...

  6. vue 异步渲染

    <!DOCTYPE html> <html> <head> <title> hello world vue </title> <met ...

  7. 关于vue&period;js中列表渲染练习

    html: <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8 ...

  8. 从壹开始前后端分离 &lbrack; vue &plus; &period;netcore 补充教程 &rsqb; 二九&boxV; Nuxt实战:异步实现数据双端渲染

    回顾 哈喽大家好!又是元气满满的周~~~二哈哈,不知道大家中秋节过的如何,马上又是国庆节了,博主我将通过三天的时间,给大家把项目二的数据添上(这里强调下,填充数据不是最重要的,最重要的是要配合着让大家 ...

  9. 从父子组件的mounted钩子的同步执行与页面的异步渲染看nextTick的用法

    最近复习vue的时候遇到了一个很奇怪的问题,我们直接从实例中看: <div id="app"> <child ref="child">& ...

随机推荐

  1. android自定义控件&lpar;3&rpar;-自定义当前按钮属性

    那么还是针对我们之前写的自定义控件:开关按钮为例来说,在之前的基础上,我们来看看有哪些属性是可以自定义的:按钮的背景图片,按钮的滑块图片,和按钮的状态(是开还是关),实际上都应该是可以在xml文件中直 ...

  2. JavaScript高级应用&lpar;二&rpar;(转)

    1.组件是否安装 //组件是否安装 isComponentInstalled("{6B053A4B-A7EC-4D3D-4567-B8FF8A1A5739}", "com ...

  3. mysql 5&period;6并行复制事件分发机制

    并行复制相关线程 在MySQL 5.6并行复制中,当设置set global slave_parallel_workers=2时,共有4个复制相关的线程,如下: +----+------------- ...

  4. 在 mac os 上搭建 git server

    前言:之前学习了如何使用 git 后,一直想搭建一个本机搭建一个 git server 的,一开始不知道走了弯路用了 gitosis,折腾了我好几天都没配置好.昨晚查资料发现 gitosis 早就过时 ...

  5. Shell中判断字符串是否为数字的6种方法分享

    #!/bin/bash ## 方法1 a=1234;echo "$a"|[ -n "`sed -n '/^[0-9][0-9]*$/p'`" ] &&a ...

  6. 解决IE 下div与img重叠无法触发鼠标事件的问题

    在IE下当我想在img标签上层显示一个div元素时,此时如果该div的background为空白(没有设置图片.或者颜色填充),会导致该div的鼠标事件失效:如果设置border为1px solid ...

  7. Android开发UI之自定义控件的皮肤

    定义一个button的皮肤,设置属性android:background="@drawable/button_skin",button_skin.xml文件为要下文中的资源文件. ...

  8. ASP&period;NET-FineUI开发实践-6&lpar;二&rpar;

    1.上回说到修改以前的会出现好几个5: 这是因为新增时是只新增到最后一行,所以点击选好了就跑到最后一行了,而且行号不会累积,只加到初始化的行号. 其实js里是有插入的,例子里可以插入到第一行,新增是a ...

  9. ExtJS001HelloWorld弹窗

    html页面 <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" ...

  10. Windows【端口被占用,杀死想啥的端口】

    windows 两步方法 netstat -ano | findstr "8080" taskkill /pid 4136-t -f linux 两步方法 ps -ef | gre ...