axios
可以在node
里使用也可以在浏览器中使用(ajax只能在浏览器中使用)
node
基于http
,浏览器
基于xhr
,最近node已经可以用fetch
node
基于request
模块
注意:xhr
(基于ajax
封装对象)
注意:前端导出/下载,向后端请求返回的数据必须是blob
格式(一种二进制格式)
前端下载的两种方式:
1.一次性全部下载下来,然后通过Blob.slice
方法切片,再做一个假的进度条展示
2.浏览器的buffer
(缓冲区)
3.http
的字段range
,设置range
请求头做部分资源下载即可
http请求头range的使用:
缓冲区
缓冲区是内存空间的一部分。也就是说,在内存空间中预留了一定的存储空间,这些存储空间用来缓冲输入或输出的数据,这部分预留的空间就叫做缓冲区。缓冲区根据其对应的是输入设备还是输出设备,分为输入缓冲区和输出缓冲区。
我们为什么要引入缓冲区呢?
比如我们从磁盘里取信息,我们先把读出的数据放在缓冲区,计算机再直接从缓冲区中取数据,等缓冲区的数据取完后再去磁盘中读取,这样就可以减少磁盘的读写次数,再加上计算机对缓冲区的操作大大快于对磁盘的操作,故应用缓冲区可大大提高计算机的运行速度。
客户端渲染 和 服务端渲染 的区别
nuxt.js
使用vue生命周期created
会调用两次接口
重复调用问题:使用了beforeCreated()
或created()
,就会出现调用了两次接口的情况。根据情况改成想要的钩子函数就可以解决问题。
虽然created可能是Vue应用程序的合适钩子,但Nuxt提供了更适合获取数据的附加钩子。如果您只需要在服务器端进行获取,则需要在钩子中用if(process.server)
包装调用。