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

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

vuejs,前端如果保存了比較大量的數據要如何處理

vuejs,前端如果保存了比較大量的數據要如何處理

楊__羊羊 2019-03-13 17:13:53
上傳財務賬單,前端在上傳文件的時候做了數據解析,將近30萬條,點擊上傳按鈕的時候需要將這30萬條數據傳給后端,現在在上傳的時候會報Message length exceeded maximum allowed length.,而且解析文件的時候瀏覽器非常卡,有什么好的解決方案么?onSelectOriginalFile(result) {        this.notifySuccessParsing();        this.data = UploadDataParser.parseShipmentCheck(result);//數據轉換      }      submit() {ReconciliationResource.import(this.data);//將數據傳給后端}
查看完整描述

2 回答

?
嚕嚕噠

TA貢獻1784條經驗 獲得超7個贊

很簡單,把解析的工作交給后端,前端把整個文件傳上去就行了。js不適合用來干CPU密集型的任務,你在前端用forwhile去解析文件是非常燒CPU的,除非你用WebAssembly(不過我也沒試過),而且這個過程還是同步的,所以你會覺得卡。

所以解決方案就是把文件傳給后端,后端用C或其它更合適的語言解析,然后再分頁傳回前端或干別的什么事。

一定要在前端燒客戶的CPU的話,可以考慮以下幾件事情:

  1. 改客戶端,不再使用普通的瀏覽器,改用Electron

  2. 嘗試WebAssembly解析文件;

  3. 優化文件結構,加速解析,如果堅持使用普通瀏覽器做客戶端的話可以讓客戶先把文件轉成json格式(專門寫個工具什么的,我也不知道你們原始格式是啥),然后前端JSON.parse,不過如果文件太大的話也要parse很久。

另外信息太大無法一次性發送的問題我沒遇到過,不過應該不是什么很麻煩的事情,畢竟網盤傳大文件都沒問題,這個自行查閱吧hhh。我現在能想到的就是可以使用WebSocket流式上傳。


查看完整回答
反對 回復 2019-03-25
?
森林海

TA貢獻2011條經驗 獲得超2個贊

javascript本身是單線程的,適合做IO操作,不適合做密集的計算工作;
不過把什么都放在后端做也不太靠譜,畢竟后端資源有限;
為了解決卡頓問題,可以試試worker

查看完整回答
反對 回復 2019-03-25
  • 2 回答
  • 0 關注
  • 2577 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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