国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

23k star超火項(xiàng)目,請(qǐng)求優(yōu)化寫的一塌糊涂!我直接重構(gòu)!

開發(fā) 項(xiàng)目管理
github 上有一個(gè)很火的項(xiàng)目,叫做 Vben-Admin,是一個(gè)非常出色的后臺(tái)管理系統(tǒng)模板,但是個(gè)人覺得它的取消重復(fù)請(qǐng)求做的一塌糊涂(下面會(huì)說理由)!!!

取消重復(fù)請(qǐng)求

取消重復(fù)請(qǐng)求是一個(gè)前端項(xiàng)目中很常見的網(wǎng)絡(luò)請(qǐng)求優(yōu)化手段,他主要是為了防止短時(shí)間內(nèi)發(fā)送了多個(gè)一模一樣的請(qǐng)求,導(dǎo)致性能的消耗~

23k star 的項(xiàng)目是怎么做的?

github 上有一個(gè)很火的項(xiàng)目,叫做 Vben-Admin,是一個(gè)非常出色的后臺(tái)管理系統(tǒng)模板,但是個(gè)人覺得它的取消重復(fù)請(qǐng)求做的一塌糊涂(下面會(huì)說理由)!!!

由于項(xiàng)目中源代碼比較多,我盡量簡化了代碼,給大家展示一下它是怎么去實(shí)現(xiàn)這個(gè)功能的

我先說一下它實(shí)現(xiàn)這個(gè)功能的思路:

  • 1、維護(hù)一個(gè) Map:key 是 請(qǐng)求的 Method + Url,value 是這個(gè)請(qǐng)求的取消方法
  • 2、請(qǐng)求攔截器中:先清除掉 Map 中此請(qǐng)求 Method + Url 的存儲(chǔ),也就是取消掉前面的重復(fù)請(qǐng)求,然后再進(jìn)行本次請(qǐng)求
  • 3、響應(yīng)攔截器:清除掉本次請(qǐng)求的存儲(chǔ),確保不影響下一次的判斷

簡化后的代碼如下

圖片圖片

接著在頁面中使用

圖片圖片

假如我點(diǎn)擊了三次,那么它會(huì)將我前面的兩次取消掉,只讓第三次請(qǐng)求成功,從而實(shí)現(xiàn)取消重復(fù)請(qǐng)求的功能~

圖片圖片

圖片圖片

但是這個(gè)方案缺陷真的很大,比如看下面的例子,我不止一個(gè)按鈕調(diào)用了,我有兩個(gè)按鈕去調(diào)用這個(gè)接口

圖片圖片

我先點(diǎn)擊了按鈕1,再點(diǎn)擊按鈕2,發(fā)現(xiàn)它把我按鈕1的請(qǐng)求取消掉了,只請(qǐng)求了按鈕2的請(qǐng)求,其實(shí)這是沒錯(cuò)的,但是錯(cuò)就錯(cuò)在,它取消了按鈕1的請(qǐng)求,但是連著按鈕1點(diǎn)擊事件接下來的代碼都中斷掉了!!!!

圖片圖片

可以發(fā)現(xiàn),控制臺(tái)沒有打印按鈕1的結(jié)果,只打印了按鈕2的結(jié)果!!!

圖片圖片

這顯然是不合理的,我們?nèi)∠貜?fù)請(qǐng)求只是為了減少網(wǎng)絡(luò)資源、性能的消耗,但是可不想因?yàn)檫@個(gè)優(yōu)化,而影響了我們?cè)镜倪壿媬

其實(shí)上面的按鈕1、按鈕2,也可以類比為頁面1、頁面2,兩個(gè)頁面在短時(shí)間內(nèi)發(fā)起了同一個(gè)請(qǐng)求,你直接去把頁面1的后續(xù)邏輯都中斷了,這不是一個(gè)好的方案!!!

并且其實(shí)不合理的地方還有:Method + Url當(dāng)做 key,確實(shí)不太合理(但是本文暫且不關(guān)注這點(diǎn))

自己思考怎么做~

想了一下,不能用上述的方案來做,缺陷太大了,自己想的方式就是不取消請(qǐng)求了!而是直接不發(fā)請(qǐng)求! 大概的思路如下:

  • 1、維護(hù)一個(gè)Map:key 是 請(qǐng)求的 Method + Url,value 第一次請(qǐng)求的 Promise
  • 2、第一次請(qǐng)求時(shí),生成一個(gè) Promise,存儲(chǔ)在 Map 中
  • 3、第一次請(qǐng)求響應(yīng)之后,修改 Promise 的狀態(tài),并把響應(yīng)數(shù)據(jù)傳給 Promise
  • 4、后續(xù)的重復(fù)請(qǐng)求以第一次請(qǐng)求的 Promise 為準(zhǔn),確保能復(fù)用數(shù)據(jù),且不影響各自的后續(xù)邏輯

簡化后的代碼如下:

圖片圖片

結(jié)果如下,按鈕1、按鈕2各自的后續(xù)邏輯會(huì)繼續(xù)進(jìn)行

圖片圖片

且請(qǐng)求只會(huì)發(fā)出一次

圖片圖片

第一個(gè)請(qǐng)求報(bào)錯(cuò)了咋辦?

我這個(gè)方案是以第一個(gè)請(qǐng)求為主的,那么,如果第一個(gè)請(qǐng)求失敗了,那后續(xù)的重復(fù)請(qǐng)求就爺跟著失敗嗎?顯然是不對(duì)的~

第一個(gè)請(qǐng)求失敗之后,我們必須讓后續(xù)的請(qǐng)求再重新走一次流程才對(duì),就像是一切都沒發(fā)生過一樣!

只需要在后續(xù)重復(fù)請(qǐng)求的錯(cuò)誤回調(diào)中,重新執(zhí)行請(qǐng)求即可,這樣又能重新來過了!!!

圖片圖片

可以看到,就算前面的失敗了,后面的照樣能自己發(fā)起請(qǐng)求進(jìn)行自救

圖片圖片

圖片圖片

有完善的空間

以上只是我根據(jù)自己思路寫出的一個(gè)粗略版本,如果大家有自己其他的顧慮,可以進(jìn)行修改精進(jìn)!

責(zé)任編輯:武曉燕 來源: 前端之神
相關(guān)推薦

2016-01-06 09:32:46

SDN軟件定義網(wǎng)絡(luò)

2024-08-30 10:02:06

事務(wù)HTTP編碼

2024-11-05 15:05:09

AI視頻

2023-06-28 13:48:23

開源圖片

2022-01-20 11:55:09

勒索軟件網(wǎng)絡(luò)安全

2025-10-29 09:29:49

2025-02-10 08:15:00

2021-11-18 07:32:52

FaceBook 元宇宙VR

2024-04-01 11:26:10

Nuejs前端

2013-05-30 10:31:03

Android開發(fā)移動(dòng)開發(fā)Android開源項(xiàng)目

2023-03-01 13:54:46

技術(shù)AI

2018-08-03 15:31:11

釣魚網(wǎng)絡(luò)信息安全網(wǎng)絡(luò)威脅

2024-08-19 12:30:29

Zustand前端

2018-12-11 14:07:44

Python分析游戲

2022-04-28 13:17:10

低代碼開發(fā)工具

2018-03-09 12:03:00

區(qū)塊鏈缺陷技術(shù)

2018-11-20 16:02:19

主板PC華碩

2018-03-26 10:14:05

2024-04-28 08:32:09

寫代碼整潔代碼代碼命名

2025-09-29 12:32:42

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

女人偷人在线视频| av资源在线观看免费高清| 天天射综合网视频| 日韩中文av在线| www日韩tube| 久久精品人人做人人综合| 欧美精品一区二区三区四区五区| 91成人在线精品视频| 亚洲国产精品人人爽夜夜爽| 青青青手机在线视频观看| 中文字幕一区视频| 在线观看国产一区| 欧美日韩三级| 国产成人综合精品| 伊人久久影院| 精品国偷自产在线视频| tube8在线hd| 欧美精品色综合| 日韩大胆人体| 精品国产成人av| 日本福利片免费看| 中文字幕成人网| av一区二区三区免费观看| 亚洲图中文字幕| 日韩一区二区免费在线观看| 精品自拍视频在线观看| 欧美在线播放一区二区| 欧美日韩精品免费观看视一区二区| 天天综合网天天做天天受| 美国一级片在线免费观看视频 | 欧美91视频| 欧美老妇交乱视频| 欧美日韩伦理一区二区| 亚洲色图17p| 在线成人av观看| 亚洲精品成人久久电影| 蜜臀av国内免费精品久久久夜夜| 欧美日韩一区二区在线观看视频 | 亚洲国产精品系列| sm国产在线调教视频| 欧美日韩一级视频| 日本暖暖在线视频| 欧美三级韩国三级日本三斤| 亚洲男男gay视频| 亚洲精品免费在线观看| 久草电影在线| 无吗不卡中文字幕| 国产91视频一区| www.欧美色图| 手机看片1024久久| 欧美日韩国产在线播放网站| 国产超碰精品| 97超级碰在线看视频免费在线看 | 91亚洲天堂| 久久精品国产视频| 中文字幕免费精品| 欧美交换配乱吟粗大25p| 亚洲桃色在线一区| 黄色成人在线网| 欧美在线亚洲一区| 免费人成网站在线观看欧美高清| 天堂中文视频在线| 91精品国产综合久久福利软件| 国产aa精品| 国产视频精品网| 久久日一线二线三线suv| 视频福利在线| 久久不射电影网| 午夜一区不卡| eeuss鲁片一区| 精品国产123| 欧美视频网址| 无码中文字幕色专区| 色先锋aa成人| 国产成人夜色高潮福利影视| 麻豆传媒一区二区| 亚洲综合免费观看高清完整版在线| 亚洲天堂电影| 国产精品一区二区三区精品| 国产亚洲精久久久久久| 欧美人与性动交α欧美精品图片| 国产成人精品综合| 成人午夜视频免费看| www 日韩| 日本三级韩国三级久久| 国产福利91精品| 日本高清在线观看wwwww色| 538国产精品视频一区二区| 国产精品亚洲а∨天堂免在线| 高清av电影在线观看| 91精品国产乱码久久久久久蜜臀| 黄网站免费久久| 国产女人在线观看| 国产精品99久久久久久久久| 99视频一区二区| av福利在线导航| 黑人巨大精品欧美一区二区小视频| 国产精品成人午夜| 成人不卡视频| 亚洲一区二区三区精品动漫| 欧美午夜精品一区二区三区| av一区二区在线播放| 亚洲天堂2018av| 无码少妇一区二区三区| 日本精品视频在线| 经典一区二区| 国产精品天天狠天天看| 女人av一区| 欧美国产综合视频| 2014亚洲片线观看视频免费| 七七久久电影网| av日韩中文字幕| 亚洲一区中文在线| 任你躁在线精品免费| 欧美aⅴ在线观看| 日韩有码在线电影| 风间由美性色一区二区三区| 国产理论在线| 色乱码一区二区三在线看| 欧美丝袜自拍制服另类| 日韩综合在线| 欧美最顶级a∨艳星| 国产精品极品在线| 亚洲国产日韩av| 日本一区二区高清不卡| 午夜国产视频| 国产精品视频1区| 一区二区免费看| 国产成人高清| 爽爽免费视频| 91免费综合在线| 欧美日韩一区二区电影| 亚洲一区成人| 波多野一区二区| 亚洲理论电影在线观看| 社区色欧美激情 | 91亚洲精品久久久蜜桃| 亚洲一区二区三区四区电影| 久久久久久三级| 国产成人一区二区三区小说| 亚洲福利一二三区| 黄色日韩精品| 51xtv成人影院| 欧美h视频在线观看| 曰本色欧美视频在线| 91原创在线视频| 亚洲电影男人天堂| 黄色软件在线观看| 亚洲综合网中心| 久久精品青青大伊人av| 最新日韩在线视频| 中文字幕免费一区二区三区| 黄页视频在线播放| 国产成人精品免费看在线播放 | 日本网站在线观看一区二区三区| 在线天堂资源| 国产熟女高潮视频| 国产日本欧美一区二区三区在线| 欧美日韩中文一区| 国产成人福利片| 亚洲小说图片视频| 日本电影全部在线观看网站视频| 裸体裸乳免费看| 欧美激情网站在线观看| 欧美性猛交xxxx黑人猛交| 日韩高清国产一区在线| 色猫猫成人app| 爱草在线视频| 日本免费一区二区三区| 中文字幕精品在线视频| 亚洲综合精品久久| 美美哒免费高清在线观看视频一区二区 | 国产极品精品在线观看| 欧美男男青年gay1069videost| 久久99久久99| 另类在线视频| 日本中文字幕在线2020| aa免费在线观看| 成人淫片在线看| 亚洲天堂网站在线观看视频| 亚洲精品水蜜桃| 久久99久久99| 国模吧精品视频| av免费不卡| h网址在线观看| 黄色污污在线观看| 国产精品日日做人人爱| 亚洲另类xxxx| 一区二区三区四区高清精品免费观看| 欧美性猛交xxxxx水多| 麻豆中文一区二区| 亚洲伊人春色| 中文在线字幕免费观看| 亚洲自拍中文字幕| 欧美日韩精品久久久| 伊人性伊人情综合网| 久久久久一区| 成人免费在线播放| 国产老妇另类xxxxx| 日韩精品中文字幕在线|