成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何獲取請求的進度,并展示給用戶看?

開發 前端
其實 Fetch 也是同理,只要我們能拿到 total 和 loaded ,也就是 數據總長度 和 已加載長度,就能算出百分比,但是 Fetch 沒有監聽函數,所以得換一種方式去獲取,大概思路就是。

響應進度

前段時間做了一個需求,需要將請求響應的進度展示給用戶看,就比如下面這樣的效果。

響應進度從 0% 到 100% ,去展示給用戶觀看。

圖片圖片


其實動畫效果倒是不難,可以直接用 ant-design 的 Progress 組件去展示進度。

真正的難點在于:如何實時獲取請求響應的進度?

如何實時獲取請求響應的進度?

其實這個問題最近幾年很多人都反饋說面試中被問到,并且面試官會問你 Xhr 和 Fetch 這兩種請求方式,他們各自的響應進度應該怎么獲取。

Xhr(XMLHttpRequest)

Xhr 的響應進度其實是比較好獲取的,因為 JavaScript 官方提供了一個監聽函數 progress來對響應進度進行監聽。

圖片圖片

并且這個方法接收一個對象,對象中有兩個屬性很重要:

  • total: 總響應數據的長度。
  • loaded: 已加載的響應數據的長度。

圖片圖片

所以我們可以根據這兩個字段來算出百分比,進而展示出來!

在此之間我先自己用 express 在本地起了一個本地服務,用來演示發起請求。

圖片圖片

接著回到前端頁面,我們使用組件庫,寫出一個頁面。

圖片圖片

當我們點擊按鈕發起請求并收到響應后,會監聽到每次的百分比。

圖片圖片


有了百分比,我們只需要把百分比放到 Progress 組件中即可實現展示效果。

圖片圖片

圖片圖片


Fetch

其實 Fetch 也是同理,只要我們能拿到 total 和 loaded ,也就是 數據總長度 和 已加載長度,就能算出百分比。

但是 Fetch 沒有監聽函數,所以得換一種方式去獲取,大概思路就是:

  • 先從請求頭獲取到 content-length 總長度。
  • 再用數據流的 API body.getReader 去讀取響應體當前已加載的長度。

圖片圖片

圖片圖片

最終也能達到我們想要的結果:

圖片圖片


上傳進度

說完響應進度,我們再來說說上傳進度應該怎么去監聽呢?

XHR

XHR 可以使用XMLHttpRequest.upload自帶的監聽函數progress去做。

圖片圖片

圖片圖片

Fetch

目前還未有辦法可以監聽,小伙伴們如果有方案的話,可以分享出來!

責任編輯:武曉燕 來源: 前端之神
相關推薦

2024-07-14 22:18:33

2024-06-20 12:17:17

前端Vue3

2013-11-26 13:47:31

GoogleAndroid 4.4

2013-06-09 13:24:57

SQL請求

2010-11-15 13:34:13

瀏覽器

2012-06-29 11:09:09

2021-12-27 10:56:10

MySQL數據庫命令

2011-06-02 11:13:07

2021-06-15 08:02:27

Python進度條Tqdm

2011-09-02 11:06:28

Oracle服務器進程為事務建立回滾段放入dirty lis

2014-04-08 14:11:02

2021-09-01 09:19:11

產品用戶體驗提醒

2021-09-09 08:54:48

SpringAOP面試題AOP事務

2022-09-26 00:42:43

GuavaJDK動態代理

2013-02-27 10:56:39

大數據

2024-10-08 11:21:11

2013-01-05 13:50:13

AjaxWebASP.NET MVC

2009-07-30 18:06:47

BSM用戶

2017-08-25 17:00:52

LinuxMeld技巧

2015-12-10 16:11:37

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美三级电影在线播放 | 色综合美女| 欧美一级特黄aaa大片在线观看 | 久久精品日产第一区二区三区 | 国产精品一区二区三区久久 | 男女羞羞视频在线观看 | 亚洲男人网 | www.精品国产 | 午夜国产羞羞视频免费网站 | 国产有码 | 久一精品| 日韩欧美国产精品一区 | 天天综合网天天综合色 | 综合色久| 久久99国产精一区二区三区 | 午夜影晥 | 免费三级av | 国产在线观 | 中文字幕视频在线 | 欧美在线色 | 久久久久久国产精品久久 | 玖玖综合网 | 九九国产 | 三级黄色片在线观看 | 性色av一区 | 成人精品 | 91av视频在线播放 | 国产精品久久久久久久久久久久冷 | 国产精品免费观看视频 | 激情网站在线观看 | 99精品久久久 | 在线看av的网址 | 在线亚洲免费视频 | 午夜ww| 精品1区| 久久精品无码一区二区三区 | 久久久av| 永久精品| 欧美一区二区三区小说 | 高清色| 男女精品久久 |