第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

一道前端面試題,如何通過備用IP提高頁面的訪問成功概率?

一道前端面試題,如何通過備用IP提高頁面的訪問成功概率?

哆啦的時光機(jī) 2018-08-03 09:25:23
問:現(xiàn)有情況為:http://api.test.com/test.php?cf=經(jīng)常訪問失敗,經(jīng)與服務(wù)端協(xié)商,服務(wù)端又提供了兩個備用IP分別為:111.***.***.***和106.**.***.***,請您寫出可以讓http://api.test.com/test.php?cf=訪問成功概率增加的前端程序;哎,沒思路,沒做出來~
查看完整描述

2 回答

?
繁華開滿天機(jī)

TA貢獻(xiàn)1816條經(jīng)驗 獲得超4個贊

我會這么做:

  • 用一個數(shù)組保存三個請求地址,用一個變量保存實際可用地址,默認(rèn)值為最常用的那個。

  • 當(dāng)發(fā)生第一次請求的時候,使用 Promise 并行發(fā)起三個請求,誰先返回用誰,并把成功的請求地址賦給上面說的變量。此后的請求就只需要使用一個地址便可

  • 這個過程應(yīng)該單獨封裝起來以備后續(xù)還需要檢查。

  • 原生的 Promise 需要改造來應(yīng)對并行請求的 race condition,若條件允許,會直接使用第三方庫如 bluebird 或 RSVP 等等。

重點是必須并行請求,然后利用竟態(tài)來阻斷后發(fā)生的兩個請求,也就是當(dāng)數(shù)組中的一個 Promise 被 resolve 之后,剩下的就不再管它了。傳統(tǒng)的回調(diào)方式你需要在回調(diào)內(nèi)部判斷可用地址變量是否已存在然后決定是否跳過后續(xù)邏輯,但請求本身都是完成的;又及你無法事先知道哪個接口會失敗,所以你還得逐個處理 errors;所以我用帶竟態(tài)控制的 Promise,原因就是以上。


但我還是覺得一定要在前端做嗎?這個明顯去弄個反向代理更合理。


查看完整回答
反對 回復(fù) 2018-08-05
  • 2 回答
  • 0 關(guān)注
  • 892 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號