最近遇到一個(gè)問(wèn)題,就是前端發(fā)起http請(qǐng)求后,后端接近要10幾分鐘才能完整處理好并且響應(yīng)回來(lái),而瀏覽器在2分多種的時(shí)候,因?yàn)檎?qǐng)求一直沒(méi)有響應(yīng)而failed了,雖然后面讓后臺(tái)優(yōu)化流程去了。但是我卻有了一個(gè)疑問(wèn):
多謝各位大神的賜教,為了方便大家理解為什么我會(huì)提這個(gè)問(wèn)題,這里補(bǔ)充下業(yè)務(wù)的場(chǎng)景:
批量導(dǎo)入,然后彈框讓其選擇excel表,選擇完畢前端直接將數(shù)據(jù)發(fā)給后端處理;問(wèn)題所在:
a.前端不會(huì)限制excel表格的大小,理論上excel可以無(wú)限大;
B.測(cè)試過(guò)當(dāng)excel里面存在超過(guò)5000條數(shù)據(jù)的時(shí)候,前端發(fā)起請(qǐng)求后,后端一直在處理,而瀏覽器在2分鐘左右的時(shí)候就因?yàn)檎?qǐng)求沒(méi)有任何響應(yīng)而failed,但是看了后端的代碼,他其實(shí)還在運(yùn)行,簡(jiǎn)單看了下,后端整個(gè)過(guò)程下來(lái)要運(yùn)行接近20分鐘
目前想法:
a.作為前端,對(duì)于這種要用戶等待時(shí)間這么長(zhǎng)的請(qǐng)求,我肯定是不同意的,會(huì)嚴(yán)重影響用戶體驗(yàn),已經(jīng)讓后端回去檢查
B.過(guò)程中衍生了一個(gè)想法:萬(wàn)一將來(lái)真的有一天需要做這種惡心的功能,前端是否有可能做得到?
最后,再一次謝謝各位賜教的大神!
如果是下載類型,需要實(shí)時(shí)生成下載文件的,可以改成多次請(qǐng)求,
超大型文件的上傳,前端也是可以處理的,利用 FileAPI 對(duì)文件進(jìn)行分割上傳
https://www.html5rocks.com/zh...
PS:上傳文件和數(shù)據(jù)對(duì)比,其實(shí)也可以拆分成兩個(gè)接口。
瀏覽器有默認(rèn)連接超時(shí),F(xiàn)irefox 好像是115秒,Chrome 好像是5分鐘還是6分鐘。
如果后端需要處理十多分鐘才能返回結(jié)果,那肯定是要異步返回結(jié)果。不可能同步,沒(méi)理由同步,就算瀏覽器不超時(shí),你也沒(méi)必要同步返回,浪費(fèi)資源。
要及時(shí)返回處理結(jié)果,你可以用 WebSocket 和 Ajax 輪詢實(shí)現(xiàn)。
用戶上傳文件,服務(wù)器成功接受文件后返回一個(gè)上傳成功的結(jié)果,然后前端給個(gè) Loading 提示,然后定時(shí)輪詢,查詢后端處理結(jié)果,處理成功了就更新前端提示成功,沒(méi)有就繼續(xù) Loading 提示。
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國(guó)IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國(guó)家
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國(guó)一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國(guó)成功上市,融資1
北大課工場(chǎng)是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國(guó)家深化產(chǎn)教融合/校企合作的政策,積極推進(jìn)“中國(guó)制造2025”,實(shí)現(xiàn)中華民族偉大復(fù)興的升級(jí)產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國(guó)職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開(kāi)發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺(tái)面向?qū)ο箝_(kāi)發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫(kù),具有快速界面開(kāi)發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁(yè)制作和網(wǎng)頁(yè)游戲開(kāi)發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開(kāi)發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國(guó)Software AG 技術(shù)顧問(wèn),美國(guó)Dachieve 系統(tǒng)架構(gòu)師,美國(guó)AngelEngineers Inc. 系統(tǒng)架構(gòu)師。