要做一个加载进度条,请问axios,可以拿到它请求的时间吗,或者有什么简便的方法实现
axios可以获取上传或下载进度的,请看看请求配置下的这两个方法:
request config
onUploadProgress: function (progressEvent) {
// Do whatever you want with the native progress event
},
// `onDownloadProgress` allows handling of progress events for downloads
onDownloadProgress: function (progressEvent) {
// Do whatever you want with the native progress event
},
我试过是可以的,以前写的代码:
this.axios({
method: 'POST',
url: this.url,
data: fmData,
params: this.params,
transformRequest: function(data) {
return data
},
onUploadProgress: function(progressEvent) {
vm.$nextTick(function() {
if (progressEvent.total === 0) {
vm.percentage = 0
} else {
vm.percentage = Math.round(
progressEvent.loaded * 100 / progressEvent.total
)
}
})
}
})
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
2 回答4.7k 阅读✓ 已解决
4 回答4.3k 阅读✓ 已解决
进度条一般都是假的....
请求过程中,时间都是未知的,怎么确定百分比呢?
Axios.interceptors.request.use
里console.log(+new Date())
不就是请求时间吗?放进store
里。Axios.interceptors.response.use
里再获取结束时间。但是都结束了,拿到时间似乎也没啥卵用...而你要做的是请求的过程中显示百分比....
可以试下这个
vue-progressbar