js数据交互——fetch
什么是fetch?
Fetch被称为下一代Ajax技术,采用Promise方式来处理数据。
是一种简洁明了的API,比XMLHttpRequest更加简单易用。
fetch是原生的(无需引入任何库和框架)。
fetch跟ajax的区别:
页面中需要向服务器请求数据时,基本上都会使用Ajax来实现。
Ajax的本质是使用XMLHttpRequest对象来请求数据,而XMLHttpRequest对象是通过事件的模式来实现返回数据的处理。
与XMLHttpRequest类似,Fetch允许你发出AJAX请求。
区别在于Fetch API使用Promise方式,Promise是已经正式发布的ES6的内容之一,因此是一种简洁明了的API,比XMLHttpRequest更加简单易用。
1.使用fetch解析文本数据:
fetch_txt.html代码如下: <head>
<meta charset="UTF-8">
<title>Document</title>
<script>
window.onload=function(){
let oBtn = document.getElementById('btn1');
oBtn.onclick = async function(){
// 1.请求
let res = await fetch('1.txt');
// 2.解析
let str = await res.text(); console.log(str);
}
}
</script>
</head>
<body>
<input type="button" value="读取" id="btn1" />
</body>
1.txt代码如下: what are you doing comedy
click button效果如下:

2.使用fetch解析json数据
fetch_json.html代码如下:
<head>
<meta charset="UTF-8">
<title>Document</title>
<script>
window.onload=function(){
let oBtn = document.getElementById('btn1');
oBtn.onclick = async function(){
// 1.请求;
let res = await fetch('1.json');
// 2.解析
let str = await res.json(); console.log(str);
};
};
</script>
</head>
<body>
<input type="button" value="读取" id="btn1" />
</body>
1.json代码如下:
{"name":"comedy","who":"yourdaddy","age":""}
click button效果如下:

3.使用fetch解析图片(解析二进制数据)
fetch_imgdata.html代码如下:
<head>
<meta charset="UTF-8">
<title>Document</title>
<script>
window.onload=function(){
let oImg = document.getElementById('img');
let oBtn = document.getElementById('btn1');
oBtn.onclick = async function(){
// 1.请求
let res = await fetch('timg.jpg');
// 2.解析
let imgdata = await res.blob();
console.log(imgdata);
//把二进制数据转换能能够解析的url
let imgurl = URL.createObjectURL(imgdata);
oImg.src=imgurl;
console.log(imgurl);
};
};
</script>
</head>
<body>
<input type="button" value="读取" id="btn1" />
<img id="img" />
</body>
运行效果如下:

end
js数据交互——fetch的更多相关文章
- echarts同一页面四个图表切换的js数据交互
需求:点击tab页,切换四个不同的图表,ajax向后台请求数据,展示在四个不同的图表中. 其余的就不多说,直接上js代码了 $(function() { $("#heart").o ...
- JS数据交互:动态从数据库中获取数据填充Select
JavaScript代码: $(document).ready(function () { getIntype(); });function getIntype(){ $.ajax({ type:&q ...
- js前台与后台数据交互-前台调后台
转自:http://blog.csdn.net/wang379275614/article/details/17033981 网站是围绕数据库来编程的,以数据库中的数据为中心,通过后台来操作这些数 ...
- 前后端数据交互处理基于原生JS模板引擎开发
json数据错误处理,把json文件数据复制到----> https://www.bejson.com/ 在线解析json 这样能直观的了解到是否是json数据写错,在控制台打断点,那里错误打那 ...
- Vue.js 学习笔记之三:与服务器的数据交互
显而易见的,之前的02_toDoList存在着一个很致命的缺陷.那就是它的数据只存在于浏览器端,一但用户关闭或重新载入页面,他之前加入到程序中的数据就会全部丢失,一切又恢复到程序的初始状态.要想解决这 ...
- 对GraphQL-BFF:微服务背景下的前后端数据交互方案的研究-------引用
随着多终端.多平台.多业务形态.多技术选型等各方面的发展,前后端的数据交互,日益复杂. 同一份数据,可能以多种不同的形态和结构,在多种场景下被消费. 在理想情况下,这些复杂性可以全部由后端承担.前端只 ...
- 04 . Vue组件注册,数据交互,调试工具及组件插槽介绍及使用
vue组件 组件(Component)是 Vue.js 最强大的功能之一. 组件可以扩展 HTML 元素,封装可重用的代码. 组件系统让我们可以用独立可复用的小组件来构建大型应用,几乎任意类型的应用的 ...
- 04 . Vue组件注册,组件间数据交互,调试工具及组件插槽介绍及使用
vue组件 组件(Component)是 Vue.js 最强大的功能之一. 组件可以扩展 HTML 元素,封装可重用的代码. 组件系统让我们可以用独立可复用的小组件来构建大型应用,几乎任意类型的应用的 ...
- android 从 phonegap 到 js webview 交互
像生活类.办公协同类. 动态添加,下载等. 1.phonegap 我这里用了旧的版本,可能新版本变化大了. 创建asset资源文件夹,然后新建index.html copy 相应的js 文件进来. 创 ...
随机推荐
- Git使用教程-idea系列中git使用教程
一.新建项目 新建项目后记得复制git仓库的地址. 二.上传项目到git仓库 在你的idea里新建git仓库,这是新建本地仓库,等会会同步到线上git仓库 新建后如果代码不是文件名不是绿色 ...
- 蓝桥杯 algo122 未名湖的烦恼 简单题
#include <iostream> using namespace std; int m, n, ans; void solve(int m, int n, int cnt) { &a ...
- spring5 源码深度解析----- AOP的使用及AOP自定义标签
我们知道在面向对象OOP编程存在一些弊端,当需要为多个不具有继承关系的对象引入同一个公共行为时,例如日志,安全检测等,我们只有在每个对象里引入公共行为,这样程序中就产生了大量的重复代码,所以有了面向对 ...
- Dubbo学习系列之九(Shiro+JWT权限管理)
村长让小王给村里各系统来一套SSO方案做整合,隔壁的陈家村流行使用Session+认证中心方法,但小王想尝试点新鲜的,于是想到了JWT方案,那JWT是啥呢?JavaWebToken简称JWT,就是一个 ...
- 引用极光jar包之后出现控制台日志打印不出来的问题。解决!
由于极光的jar包中引用的有log4j,项目本身也引用有log4j,如果版本有冲突,则会出现控制台日志记录打印不出来的现象.解决:引用极光jar包的时候,排除log4j. <dependency ...
- Java 文章链接
Java表单验证封装类 https://www.cnblogs.com/linjiqin/archive/2013/11/18/3429424.html 微信企业号接入JDK6和JDK7及JDK8加解 ...
- playframe 项目搭建
- uC/OS-III 时钟节拍(一)
时钟节拍就是操作系统的时基,操作系统要实现时间上的管理,必须依赖于时基(时基即时间基准,操作系统的基准时钟). uC/OS-III时钟节拍的实现过程 时钟节拍就是系统以固定的频率产生中断(时基中断), ...
- php echo/print 输出函数比较
一.两者区别 echo 支持多个字符串输出,用逗号(,)隔开,print只支持一个字符串输出 echo 输出速度比print快 echo 没有返回值,print返回值总是1 二.使用 echo e ...
- 学习WEBAPI(DOM)第二天
目录 第二天学习目标: 一.阻止超链接的默认跳转行为 二.鼠标进入事件和鼠标离开事件 三.根据name属性值获取元素==>表单标签,返回的是伪数组 四.根据类样式的名字来获取元素,返回的是伪数组 ...