Network中XHR与JS的区别?
一、Network中XHR与JS的区别
XHR主要作用是用于筛选所有的XHR类型的请求,达到只看XHR类型请求的目的,XHR这个标签出现在Chrome浏览器的开发者工具Network选项卡中,XHR类型即通过XMLHttpRequest方法发送的请求。
XMLHttpRequest(XHR)是一个构造函数,对象用于与服务器交互。通过 XMLHttpRequest 可以在不刷新页面的情况下请求特定 URL。即允许网页在不影响用户操作的情况下,更新页面的局部内容。可以用于获取任何类型的数据。
对文件类型的过滤,XHR代表当前页面执行的时候网络请求,JS代表当前页面所加载的JS文件。
XHR与JS简单的说就是 content-type 的区别:
xhr 是 application/json
js 是 application/javascript
延伸阅读:
二、fetch
fetch的一些问题
fetch是原生js方法,没有使用XMLHttpRequest对象,使用fetch可以不用引用http的类库即可实现。提供了一种简单,合理的方式来跨网络异步获取资源。
1)fetch只对网络请求报错,对400,500都当做成功的请求,服务器返回 400,500 错误码时并不会 reject,只有网络错误这些导致请求不能完成时,fetch 才会被 reject。
2)fetch默认不会带cookie,需要添加配置项: fetch(url, {credentials: ‘include’})
3)fetch不支持abort,不支持超时控制,使用setTimeout及Promise.reject的实现的超时控制并不能阻止请求过程继续在后台运行,造成了流量的浪费
4)fetch没有办法用原生监测异步请求,而XHR可以
fetch同构方便,使用isomorphic-fetch
.fetch 不管请求处理成功还是失败,都会触发promise的resolve状态回掉。这个和传统的ajax 框架是有点区别的。fetch只有当网络故障导致请求发送失败或者跨域的时候才会触发reject的逻辑。我们可以通过response 对象的ok是否是true来判断是否是真正的成功。
fetch与XMLHttpRequest的区别
fetch()使用 Promise,不使用回调函数,因此大大简化了写法,写起来更简洁。
fetch()采用模块化设计,API 分散在多个对象上(Response 对象、Request 对象、Headers 对象),更合理一些;相比之下,XMLHttpRequest 的 API 设计并不是很好,输入、输出、状态都在同一个接口管理,容易写出非常混乱的代码。
fetch()通过数据流(Stream 对象)处理数据,可以分块读取,有利于提高网站性能表现,减少内存占用,对于请求大文件或者网速慢的场景相当有用。XMLHTTPRequest 对象不支持数据流,所有的数据必须放在缓存里,不支持分块读取,必须等待全部拿到后,再一次性吐出来。
以上就是关于Network中XHR与JS的区别的内容希望对大家有帮助。

相关推荐HOT
更多>>
JAVA和C++有什么区别?
一、JAVA和C++的区别Java和C++是两种不同的编程语言,具有以下区别:1、语法不同Java是一种面向对象的编程语言,语法相对简单,注重可读性和...详情>>
2023-10-19 23:27:55
iso与gho的区别?
一、iso与gho的区别1、来源不一样ISO光盘镜像文件可以直接刻录成光盘使用(带启动),也可以说是一个压缩包。GHO是GHOST境像文件、是用GHOST备份...详情>>
2023-10-19 21:08:10
mybatis与hibernate区别?
一、mybatis与hibernate区别1. sql 优化方面Hibernate 使用 HQL(Hibernate Query Language)语句,独立于数据库。不需要编写大量的 SQL,就可...详情>>
2023-10-19 20:40:41
云计算与分布式计算有哪些区别?
一、云计算与分布式计算的区别云计算是并行计算、分布式计算和网格计算的发展,或者说是这些计算机科学概念的商业实现。云计算是虚拟化、效用计...详情>>
2023-10-19 20:15:44