前端實現併發請求。

2022-07-18 01:09:13 字數 948 閱讀 2731

需求:列表多頁勾選實現批量列印流行病學問卷調查,列印出每乙個患者(每一條資料)流行病學調查問卷。

分析:通常多頁勾選實現批量列印,我們的做法都是,將所有的資料統一傳給後端的乙個協議,但是這個需求比較特殊,使用者要求單獨乙個患者有乙份自己單獨列印出來的問卷,同後端討論後,我們為了實現需求,決定實現的方式為,勾選的資料分別去呼叫後端列印介面,實現批量單獨列印。

方案確定後,我們有幾個問題需要考慮:

1,如何傳送請求,例如頁面勾選100條,不可能一下子傳送100個請求,因為瀏覽器有併發請求控制,如果超出併發數,後面的請求將會進入佇列等候,我們在等候中的話  有可能會出現瀏覽器卡死。

那麼為了解決上面兩個問題,我們可以把兩種方法綜合一下,前端實現併發請求,

先併發假設5條,任意條成功之後,後面的佇列加到前面的請求中。

相當於現在有5個水龍頭在排隊打水,假設第乙個水龍頭的人打完水,那麼後面的乙個人就排到第乙個水龍頭去,那麼相當於前面有5個通道可以排隊,大大減少了排隊壓力。

**如何實現,以下**為整體邏輯框架:

sendprint = () =>, (v,k) => k); //

這邊假設生成勾選的100條資料

const limit = 5; //

併發請求數量

//請求後台列印協議

const asyncmethond = () =>

//將所有資料定義成乙個陣列,這個陣列的每乙個元素返回乙個函式,這個函式裡面返回乙個非同步列印強求

const asyncfunctionshandles = arrlist.map((item) => else})}

});const promiselist =;

//實現併發請求

for (let i = 0; i < limit; i ++)

promise.all(promiselist).then((res) =>)

}

用GREQUESTS實現併發HTTP請求

起因 要用http請求探測服務的有效性,多程序,多執行緒,感覺似乎沒有必要,看看有沒有協程的方案 1.簡單用法 grequests 利用 requests和gevent庫,做了乙個簡單封裝,使用起來非常方便 import grequests import time import requests u...

PHP curl multi exec 併發請求

有時候在乙個php方法中要多次呼叫外部的介面,為了優化 提高效率,我們不妨使用curl multi exec併發處理多個請求,這樣可以明顯地提高獲取響應資料的速度,減少程式執行的時間,下面是乙個實際執行的例子。使用curl並行傳送多個請求獲取資料 param array urls 多個請求陣列 re...

PHP curl併發請求

使用php的curl函式呼叫多個外部http介面時,預設情況下是需要乙個乙個執行的,第乙個請求結束後才會發起第二個請求,這樣會顯得效率低。如果各個請求之間沒有強依賴關係,可以使用curl的multi系列函式來同時發起多個請求,這樣可以節省很多時間,提高效率。有很多資料說curl multi是使用多執...