// ajax 原生语法
// GET请求
// 创建一个XMLHttpRequest对象
var xhr=new XMLHttpRequest();
// 设置请求方法
Xhr.open('GET','url?name=zhao&age=27');
// 注册监听响应的函数
xhr.onreadystatechange=function(){
if(xhr.readyState==4 && xhr.status==200){
alert(xhr.responseText);//获得响应的报文 html字符串的格式返回
}
}
xhr.send();
POST请求方式
var xhr=new XMLHttpRequest();
xhr.open('POST',url) //注意参数在此处不用填写
xhr.onreadystatechange=function(){
if(xhr.readyState==4 && xhr.status==200){
alert(xhr.responseText);
}
}
// 重点 设置请求头
xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xhr.send('name=zhao&age=27');
// 了解更多的xhr的文档地址 MDN
// 传统混合开发和Aja开发模型异同
// ->传统网站的开发模型(后台渲染模型)
// 1特点就是所有数据都在后台中进行加载和渲染(集中式渲染)
// 2由于集中式的渲染,一个动态网站的页面会混合 html代码 js css 以及后台脚本代码(php)
// 3在移动端井喷的时代,为了适应各种屏幕的适配 混合代码维护成本太高(屏幕的代码以一一对应) ,效率太低;
ajax请求模型
- 请求结构
1 有一个页面(纯html的页面 不包含任何代码);
2 发送ajax 请求到服务器
3 服务器根据传入的参数进行验证,处理,获取数据,字后金昂所需要的数据响应给浏览器(分离)
4 浏览器拿到数据字后,可以利用don的方式来将数据渲染到页面中(分布式渲染);
// 先跳转到一个html页面中,渲染后 onload=function(){} 发送ajax 来添加数据
// art-template模板引擎 (腾讯公司出品)
// 引入template-web.js 文件
// 2 设置提属性 为 text / template 告诉浏览器不要解析代码 2 设置id属性,用于引用 在script中填写模板即可,模板就是html标签
<script type="text/template" id="tp1"></script>
3 调用函数 template
var template('#tp1',{}); 参数为 {模板的id 填坑用的对象}
语法: (详见官网文档)
// template('模板的id',{ 填坑用的对象})返回html 格式的字符串(填好坑的字符串);
// [重要]:
// 模板中采用了分离的思想, 我们将模板和背后的这个对象,在逻辑上视为一个整体,模板上的每一个名字就是背后对象的一个属性
// 1插值语法
// <%= %> 等价于php中<?php ?> = 等价于 echo
// 2 分支
// <% if (表达式) { %>
// ...
// <% } else { %>
// <% } %>
// 3 循环结构
// <% while(表达式) { %>
// <% } %>
// <% for(var i=0;i<...;i++) { %>
// <% } %>
// 4 原始输出注意查 文档 语法来回变动
// <%- %>
标准语法
1 插值语法
{{ 表达式 }}
2 原始输出
{{@ 表达式}}
3 分支
{{ if 表达式}} 。。。{{ else}}。。。 {{ /if}}
{{ if 表达式}} 。。。 {{ else if 表达式}} 。。。{{ /if}}
4三元表达式
{{ a==1 ? 'a' :''b ' }}
5 循环
{{ each 数组 }} {{ $ndex}}:索引 {{ $value}} 项 {{ /each}}
{{ each 数组 值 索引}} {{ /each }}