亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

求這道筆試題的思路和寫法?

求這道筆試題的思路和寫法?

撒科打諢 2018-09-11 13:29:48
產品規模越來越大,前端交互越來越復雜,會導致請求越來越多。請使用javascript或者其方言, 完成一個 XHR proxy,用于代理異步請求:保持請求發起時間點,分布均勻,杜絕同一時間點多個請求一起發送可以限制請求頻率,如最多 一秒5個請求可以限制最大連接數,如同時在線請求最多為 10個保證請求與回調按照順序執行,如,一秒內做了請求 A,B,C,D,E,那么其callback執行也需按 照A,B,C,D,E的順序執行,以保證依賴兼容移動端
查看完整描述

1 回答

?
慕勒3428872

TA貢獻1848條經驗 獲得超6個贊

一些思路:

  1. 可以采用循環定時器和令牌池依序處理請求,從而實現 分布均勻、請求頻率限制和最大連接數等限制
    維護一個請求隊列,隊列是先進先出

定時器定時輪訓令牌池,如果還存在令牌,則取出1個令牌,把執行請求隊列中第一個,以致令牌池為空,則開始空循環,其中的請求頻率是定時器間隔的倒數,令牌池的大小可以參考最大連接數。

  1. 對于回調依序執行,其實也是處理一個回調執行池,和維護一個頭指針,并且在前面請求的時候傳入調用id,比如從0開始的計數,所有的回調都不直接執行,而是壓入回調執行池中,并觸發一次遍歷比較(因為池的大小受前面令牌池限制,所以遍歷成本不高),然后比較頭指針,如果回調id和頭以致則執行,然后頭指針自增,再遍歷比較,直到沒有需要執行的為止,這時就等待新的回調壓入池。

  2. 這樣的處理不區分pc和移動端的,可以純javascript實現。


查看完整回答
反對 回復 2018-10-16
  • 1 回答
  • 0 關注
  • 550 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號