MUI框架-09-MUI 与后台数据交互

  • 本篇介绍使用 art-template 和原生 MUI 的数据交互 mui.ajax 来实现
  • 我们大家都知道,想要数据交互就要有数据,每次当我们发送请求,我们要清楚,怎么发,发给谁,返回的数据是什么内容,格式
  • 先放一张图,给大家学习的动力:

  • 然后今天呢,介绍的是调用 API,API 是什么呢,就是一个接口,比如知乎日报的API ,我们可以通过这个 API 获取到知乎上最新的消息,并且是 json 格式,我们就不用再去找数据了,其他类型 API 还有 百度语音识别,就是百度给我们一个接口,我们可以想这个接口发送 语音,然后返回给我们识别的结果,我们就没必要就了解具体是怎么识别的
  • 【注意】:我这里收集了大量的 API ,赠送给大家:
  • 链接地址:中国国内 - 可用API合集

API 分析

Ajax

  • MUI Ajax 官方文档
  • 参数呢,大家自己在官网看就可以,下面开始实战
  • 这里我们先一起看一下,官网给出的代码示例:如下为通过post方式向某服务器发送鉴权登录的代码片段:
mui.ajax('http://server-name/login.php',{
data:{
username:'username',
password:'password'
},
dataType:'json',//服务器返回json格式数据
type:'post',//HTTP请求类型
timeout:10000,//超时时间设置为10秒;
headers:{'Content-Type':'application/json'},
success:function(data){
//服务器返回响应,根据响应结果,分析是否登录成功;
...
},
error:function(xhr,type,errorThrown){
//异常处理;
console.log(type);
}
});
  • 上面这段代码就是说,ajax请求,设置一个目标地址,逗号,大括号后面是传入的参数信息
  • 大家记住一句话 大括号开始 大括号结束就是 json 格式
  • 然后我们就根据这个做一个实例,准备呢,大家请先根据这篇创建一个简单的页面:MUI框架-08-窗口管理-创建子页面
  • 然后打开我们的自己建的 html 目录下的那个子页面 html文件
  • 我们用下面代码替换 init() 的 script 标签,具体步骤写在注释:

<script type="text/javascript">
mui.init() //plusReady,用来定义加载dom后的操作
mui.plusReady(function() { //发起 ajax请求,地址使用知乎日报 api
mui.ajax('https://news-at.zhihu.com/api/4/theme/11', {
/* data 是参数,我们这里不需要,我们只是从 api获取数据
data: {
username: 'username',
password: 'password'
},
*/
dataType: 'json', //服务器返回json格式数据
type: 'get', //HTTP请求类型
timeout: 10000, //超时时间设置为10秒;
headers: {
'Content-Type': 'application/json'
},
success: function(data) {
//服务器返回响应,根据响应结果,分析是否登录成功; //我们现在控制台打印一下请求结果
console.log(data) //然后获取json数据中的具体值
console.log(data.stories[0].title)
},
error: function(xhr, type, errorThrown) {
//异常处理;
console.log(type);
}
}); })
</script>

把返回的 json 数据放在页面 -

使用 art-template - JavaScript 模板引擎

  • 返回的数据不能就展示在控制台吧,怎么把数据放在页面是不是也很关键
  • 这里要介绍另一位主角:art-template,它是高性能 JavaScript 模板引擎
  • art-template 官网: http://aui.github.io/art-template/zh-cn/index.html
  • 1.下载的话可以从官网下载
  • 2.可以直接下载我的 template -web.js:https://download.csdn.net/download/qq_40147863/10689407
  • 3.如果你会用 npm 包管理器,那么建议新建一个文件夹,因为我们只需要一个 template -web.js 文件,我们有很多都不需要

npm install art-template --save

  • 然后找到 art-template/template -web.js 文件

  • 然后我们拷贝到项目 js 目录的下面:

  • 打开需要使用的 html 文件,在 head 标签里加入:
<script src="../js/template-web.js"></script>
  • 然后我们看一下 art-template 官网

  • 也就是说们要使用这个 art-template,语句使用就要放在 这种 script 标签里,做对数据的渲染
  • 第一步:把页面上 ul 标签里的内容都删掉,给ul 标签加一个id为zhihu截图:
<ul class="mui-table-view" id="zhihu"></ul>
  • 第2步把页面里 init 函数的那个 script 标签删掉,步骤,写在注释里了,粘贴下面这段代码:
<!-- 引入template-web.js -->
<script src="../js/template-web.js" type="text/javascript" charset="UTF-8"></script>
<!-- 使用<script id="list" type="text/html"> 拼接 html -->
<script id="list" type="text/html">
<!-- 循环语法 -->
{{each stories as list}}
<li class="mui-table-view-cell mui-media">
<a href="javascript:;">
<img class="mui-media-object mui-pull-left" src="{{list.images[0]}}">
<div class="mui-media-body">
<!-- 获取 title -->
{{list.title}}
</div>
</a>
</li>
{{/each}}
</script>
<script type="text/javascript">
mui.init() //plusReady,用来定义加载dom后的操作
mui.plusReady(function() { //发起 ajax请求,地址使用知乎日报 api
mui.ajax('https://news-at.zhihu.com/api/4/theme/11', {
/* data 是参数,我们这里不需要,我们只是从 api获取数据
data: {
username: 'username',
password: 'password'
},
*/
dataType: 'json', //服务器返回json格式数据
type: 'get', //HTTP请求类型
timeout: 10000, //超时时间设置为10秒;
headers: {
'Content-Type': 'application/json'
},
success: function(data) {
//服务器返回响应,根据响应结果,分析是否登录成功; //我们现在控制台打印一下请求结果
console.log(data) //然后获取json数据中的具体值
//console.log(data.stories[0].title) //list 对应上面的 id,就是得到 拼接的 html
var html = template('list', data);
//把得到的 html 放到id为 zhihu 的 ul 标签里
document.getElementById("zhihu").innerHTML = html;
console.log(html); },
error: function(xhr, type, errorThrown) {
//异常处理;
console.log(type);
}
}); })
</script>

真机运行

更多文章链接:MUI 框架


- 本笔记不允许任何个人和组织转载

MUI框架-09-MUI 与后台数据交互的更多相关文章

  1. MUI框架-11-MUI前端 +php后台接入百度文字识别API

    MUI框架-11-MUI前端 +php后台接入百度文字识别API 这里后台不止一种,Python,Java,PHP,Node,C++,C# 都可以 这里使用的是 php 来介绍,已经解决所有问题,因为 ...

  2. --@angularJS--自定义服务与后台数据交互小实例

    1.myService.html: <!DOCTYPE HTML><html ng-app="app"><head>    <title& ...

  3. --@angularJS--$http服务与后台数据交互

    1.httpBasic.html: <!DOCTYPE HTML><html ng-app="app"><head>    <title& ...

  4. AntDesign(React)学习-10 Dva 与后台数据交互

    明天正式在线办公没时间学习了,今天晚上再更新一篇, 代码提交一次:https://github.com/zhaogaojian/jgdemo 1.src下创建services目录 创建文件userSr ...

  5. 在ssm框架中前后台数据交互均使用json格式

    前后台数据交互均使用json. 框架ssm(spring+springmvc+mybatis) @RequestBody注解实现接收http请求的json数据,将json数据转换为java对象,注解加 ...

  6. 使用Jquery.AJAX方法和PHP后台数据交互小结

    使用jQuery的AJAX方法和后台PHP进行数据交互,交互采用的数据格式JSON格式. 我主要小小的总结了一下,我使用AJAX方法时候遇到一些小小的问题. 第一:在传递数据的时候,传输地址注意是否正 ...

  7. js前台与后台数据交互-前台调后台

    转自:http://blog.csdn.net/wang379275614/article/details/17033981   网站是围绕数据库来编程的,以数据库中的数据为中心,通过后台来操作这些数 ...

  8. vue-cli模拟后台数据交互

    作为一个前端入坑的妹子,在学习vue的道路上挣扎徘徊,由一开始的对vue一直蒙圈只知道双向数据绑定和一些'V-x'的指令,慢慢通过一个视频的学习渐渐入坑,对于我这个js基础不怎么好而且编程思维又不是很 ...

  9. web前端与后台数据交互

    1.前端请求数据URL由谁来写? 在开发中,URL主要是由后台来写的,写好了给前端开发者.如果后台在查询数据,需要借助查询条件才能查询到前端需要的数据时,这时后台会要求前端提供相关的查询参数,这里的查 ...

随机推荐

  1. Github如何在本地创建一个空的仓库

    1.在任意地方创建文件夹,并进入该文件夹: 2.通过git init命令把该文件夹变成Git可管理的仓库: 3.该文件夹里会多了个.git文件夹,它是Git用来跟踪和管理版本库的: 4.这时候手动把项 ...

  2. rbac - 介绍

    找到了上学期末压箱底的rbac组件,这里总结下. 介绍: rbac组件:一个基于角色的权限访问控制系统的组件. 目录:

  3. Mac下安装Iterm2终端工具

    一般Iterm2是结合oh-my-zsh一起使用,但是如果不喜欢zsh也可以单独使用.Iterm2有个亮点就是可以通过快捷键快速启动. 安装步骤: 1.下载: http://www.iterm2.co ...

  4. Asp.Net Cache缓存技术学习

    本文参考自Fish Li的细说 ASP.NET Cache 及其高级用法 一.前言,相信大多数做网站开发的都知道缓存技术对于网站的重要性,它对于网站的性能优化起着至关重要的作用. 关于缓存的技术大致有 ...

  5. javascript中的function 函数名(){} 和 函数名:function(){}有什么不同

    function functionName(){};这是定义一个函数 functionName:function(){};是设置一个对象的方法. 下面举一个例子: <html> <h ...

  6. 事务实现,redo,undo,锁

    事务(Transaction)是数据库区别于文件系统的重要特性之一.在文件系统中,如果你正在写文件,但是操作系统突然崩溃了,这个文件就很有可能被破坏.当然,有一些机制可以把文件恢复到某个时间点.不过, ...

  7. 一头扎进Spring之---------Spring核心容器----------

    1.什么是 IOC/DI? IOC(Inversion of Control)控制反转:所谓控制反转,就是把原先我们代码里面需要实现的对象创建.依赖的代码,反转给容器来帮忙实现.那么必然的我们需要创建 ...

  8. 一文带你入门图像分析,成为AI专家不是梦!

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由腾讯云AI中心发表于云+社区专栏 腾讯云高级研究员讲述,从成像到图像分析如何入门 文︱冀永楠 "AI来了"邀请到我 ...

  9. 使用 DL4J 训练中文词向量

    目录 使用 DL4J 训练中文词向量 1 预处理 2 训练 3 调用 附录 - maven 依赖 使用 DL4J 训练中文词向量 1 预处理 对中文语料的预处理,主要包括:分词.去停用词以及一些根据实 ...

  10. JAVA字符编码测试

    几点注意: 1,ASCII码和ISO-8859-1都是单字节编码,ASCII码能表示128个字符,ISO-8859-1总共能表示256个字符.都不能表示中文,如果中文字符或其它不在IOS-8859码值 ...