ajax&模板引擎

使用命名空间,来避免命名的ajax函数被重名的覆盖
var $_fox_tool = {
// 将 我们封装的 函数 保存在 一个 全局 对象的 属性中
ajax_tool_pro: function(object) {
var ajaxObj = new XMLHttpRequest();
if (object.method == ‘post‘) {
ajaxObj.open(object.method, object.url);
ajaxObj.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
ajaxObj.send(object.data);
} else {
ajaxObj.open(object.method, object.url + ‘?‘ + object.data);
ajaxObj.send();
}

ajaxObj.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
if (this.responseXML == null) {
object.callBack(this.responseText);
} else {
object.callBack(this.responseXML);
}

}
}
}
};

使用时现在页面引入JS文件,然后
function ajax() {
// 封装到了 一个对象中使用的时候要通过对象 .语法进行使用
$_fox_tool.ajax_tool_pro(
{
url:‘03.getJson.php‘,
method:‘get‘,
data:‘‘, 可以省略
callBack:function (data) {
console.log(data);
}
}
);
}

也可以使用jquery发送ajax
直接发送get请求;url:必须;data:可选,参数支持对象,字符串;success:回调函数(注意,不是callback);dataType:‘json‘(不是json对象的时候可以省略)dataType可选,可能的类型:"xml""html""text""script""json""jsonp"
$.get({
url:‘01.jq_get.php‘,
data:{name:"jack",skill:"painting",wife:"rose"},
dataType:‘json‘,
success:function (data) {
console.log(data);
}
})

post和get方法一样
getJSON方法中,如果是json格式,会自动转换为js对象,内部执行了JSON.parse()
getJSON(‘url‘,function(data){console.log(data);})

$.ajax是使用jquery的ajax方法发送请求,默认是get方法
$.ajax()方法相比于前面的方法,拥有更为自由的定制性,可以替换$.get(),$.post()方法
settings 可选。用于配置 Ajax 请求的键值对集合。可以通过 $.ajaxSetup() 设置任何选项的默认值。
$.ajax({
url:‘04.jq_ajax.php‘,
type:"post",
success:function (data) {
console.log(data);
},
beforeSend:function () {
// 发送ajax请求之前 可以在这里 验证数据是否为空
console.log(‘beforeSend‘);
// return false;
},
error:function () { //当页面没有加载出来时会输出
console.log(‘请求失败,请检查‘);
},
dataType:‘json‘
})

val();是jq的写法,jq里没有value()这种写法

封装模板引擎
var $_medo_tool = {
参数1:模板字符串
参数2:想要替换的对象
medo_template: function(templateStr, obj) {
var reg = /<%=\s*([^%>]+\S)\s*%>/;
// 使用while循环
var result;
// 每次 循环 都查找 模板中 满足条件的 文本 进行替换 直到 查找不到为止
while (result = reg.exec(templateStr)) { //正则表达式在模板字符串中找到匹配的字符...exec检索字符串中指定的值。返回找到的值,并确定其位置。
var replaceStr = result[0]; //得到一个带<>的属性,比如<name>
var key = result[1]; //得到一个属性,没有尖括号
templateStr = templateStr.replace(replaceStr, obj[key]);
}
return templateStr; //返回一个替换过的模板字符串
}
}

模板引擎的使用可分为三大步
1.导入模板引擎,直接导入即可,不依赖于JQ
<script type="text/javascript" src=‘js/fox_template.js‘></script>
2.定义模板
<script type="text/itcast" id=‘template01‘>我叫<name>,我的爱好是<habbit></script>
type不设置javascript那么就不会按照js去解析,为什么要有script标签呢,因为如果用别的标签会把它解析出来,影响页面,script标签也跟普通标签一样使用,也可以设置id等等
<script type="text/itcast" id=‘template02‘>
<tr>
<td><%=name%></td>
<td><%=habbit%></td>
</tr>
</script>
3.写JS,定义对象,读取模板,传入对象即可,传数组会报错
var str = document.querySelector(‘#template02‘).innerHTML;
var obj = {
name:"老王",
habbit:"撩汉子_嘿嘿嘿"
};
var result = $_fox_tool.fox_template(str,obj);
console.log(result);

常见的模板插件
百度开发http://tangram.baidu.com/BaiduTemplate/
腾讯开发https://github.com/aui/artTemplate
淘宝开发https://github.com/shepherdwind/velocity.js/
http://handlebarsjs.com/

模板引擎的用法大同小异,腾讯开发的ArtTemplate由于性能优秀,这里我们演示ArtTemplate的用法

导入模板引擎: 将下载好的ArtTemplate导入到页面中

<script type="text/javascript" src = "./files/template-native.js"></script>
定义模板:

<% %>这样的语法是定义逻辑表达式

<%=内容 %>这样的语法为输出表达式

注意:这路的模板type=‘text‘如果写成javascript会执行

<script type="text" id = "templ01">
<ul>
<li><%=name %></li>
<li><%=age %></li>
<li><%=skill %></li>
<li><ul>favouriteFood
<% for(var i = 0 ;i < favouriteFood.length;i++) {%>
<li><%=favouriteFood[i] %></li>
<% } %>
</ul>
</li>
</ul>
</script>
读取模板,传入数据: 导入了模板引擎以后,我们可以使用template(模板id,数据);
// 调用模板引擎的方法
var backHtml = template("templ01",data);
// 返回值就是填充好的内容

时间: 2025-01-08 10:13:32

ajax&模板引擎的相关文章

JavaScript学习总结(一)——延迟对象、跨域、模板引擎、弹出层、AJAX示例

JavaScript学习总结(一)--延迟对象.跨域.模板引擎.弹出层.AJAX示例 目录 一.AJAX示例 1.1.优点 1.2.缺点 1.3.jQuery AJAX示例 二.延迟对象(Deferred) 2.1.回调函数 2.2.deferred.done 三.跨域 3.1.什么是跨域 3.2.JSONP跨域 3.3.jQuery使用JSONP跨域 3.4.跨域资源共享(CORS) 3.5.小结 四.弹出层 五.模板引擎 5.1.Hello World 5.2.方法 5.3.与AJAX结合应

&lt;Ajax&gt; 七. 模板引擎的使用(template-web.js的使用)

<!DOCTYPE html> <html lang='en'> <head> <meta charset='UTF-8'> <title>Title</title> </head> <body> <h3>模板引擎的使用</h3> </body> </html> <!-- 模板 --> <!-- 引入模板引擎js --> <scrip

ajax里使用模板引擎

一.概述: 处理响应数据渲染可以使用模板引擎(实际上就是一个API,目的是更容易的将数据渲染到HTML中) 目前市面上有许多模板引擎,可以参考 推荐使用artTemplate,它采用作用域预声明的技术来优化模板渲染速度,同时支持 NodeJS 和浏览器. 二.模板引擎步骤: ①选择一个模板引擎,下载模板引擎文件 ②引入到页面中 ③准备一个模板 ④准备一个数据 ⑤通过模板引擎的js提供的一个函数将模板和数据整合得到渲染结果HTML ⑥将渲染结果的HTML设置到默认元素的innerHTML中 三.模

artTemplate模板引擎学习实战

在我的一篇关于智能搜索框异步加载数据的文章中,有博友给我留言,认为我手写字符串拼接效率过低,容易出错.在经过一段时间的摸索和学习之后,发现现在拼接字符串的方法都不在是自己去书写了,而是使用Javascript引擎.而javascript引擎的实质就是帮我们把带有JavaScript代码的伪THTML语句编译为HTML. 如果有不了解的朋友,可以前往这两篇文章: 淘宝购物车页面 PC端和移动端实战 淘宝购物车页面 智能搜索框Ajax异步加载数据 源码地址: GitHub:Uncle-Keith 回

JavaScript模板引擎

JavaScript模板引擎实例应用 在之前的一篇名为<移动端基于HTML模板和JSON数据的JavaScript交互>的文章中,我向大家说明了为什么要使用JavaScript模板以及如何使用,文末还提到了laytpl.artTemplate.doT.baiduTemplate.kissyTemplate等模板引擎. 本文将举实例向大家讲解几个常用模板引擎的简单使用. 演示地址:模板引擎示例http://demo.52fhy.com/jstemp/ 准备工作 演示数据:blog.json结构:

JavaScript模板引擎实现数据交互

经过1年的磨练,近期终于稍微明白到,前端是怎么做到企业要求的:数据交互. 1,ajax+json这个是必须学的,但没问题,我们可以通过这个博客来慢慢了解怎么回事? 2,可以通过JS框架和JS模板来实现,但最后还是要用到ajax+json的. 注意:个人建议 假如项目页面数量是少于50-100个的,那么推荐使用JS模板:如果大于100个的用JS框架.各有各优势嘛. 今晚的博客分几次写完,看到这句话删除就证明已经写完了. 先分享JS模板的内容:我这次推荐使用百度的模板引擎,因为他比腾讯的art运行速

模板引擎doT.js

作为一名前端攻城师,经常会遇到从后台ajax拉取数据再显示在页面的情境,一开始我们都是从后台拉取再用字符串拼接的方式去更达到数据显示在页面! <!-- 显示区域 --> <div id="testid"></div> <script type="text/javascript"> var testjson={"name":"张三","age":31,"

Node.js模板引擎的深入探讨

每次当我想用 node.js 来写一个 web 相关项目的时候,我总是会陷入无比的纠结,原因是 JavaScript 生态圈里的模板引擎实在太多了,但那么多却实在找不出一个接近完美的,所谓完美的概念就是功能丰富,书写简单,前后端可共用等一些属性.虽然可以在 Template Chooser 按功能进行挑选,但挑选的结果再用来对比还是各有各的问题.所以干脆就一些模板引擎进行稍微深入的分析,希望通过对比总结出哪种更值得去使用. 第一轮排除 在上次node模板引擎简单比较的文章里,其实已经有个简单的筛

全球最快的JS模板引擎:tppl

废话不多说,先上测试: 亲测请访问:[在线测试地址]单次结果不一定准确,请多测几次. tppl 的编译渲染速度是著名的 jQuery 作者 John Resig 开发的 tmpl 的 43 倍!与第二名 artTemplate 也有一倍的差距. 似乎每一个大公司都选择自己开发模板引擎并将其开源,结果就是社区充斥着数不清的引擎,让人眼花缭乱无从选择.随着时间的流逝,越来越多的功能被添加进去,最终让一个强悍的发动机变成了一台臃肿复杂零件生锈的拖拉机.天呐,我就想网页面里插一段 html,你居然要我往