需求:列表多頁勾選實現批量列印流行病學問卷調查,列印出每乙個患者(每一條資料)流行病學調查問卷。
分析:通常多頁勾選實現批量列印,我們的做法都是,將所有的資料統一傳給後端的乙個協議,但是這個需求比較特殊,使用者要求單獨乙個患者有乙份自己單獨列印出來的問卷,同後端討論後,我們為了實現需求,決定實現的方式為,勾選的資料分別去呼叫後端列印介面,實現批量單獨列印。
方案確定後,我們有幾個問題需要考慮:
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是使用多執...