前端處理後端返回的高精度的長整型。

2022-07-19 11:21:20 字數 422 閱讀 5176

有一次在專案裡碰到雪花演算法生成id,然後返回到前端。雪花演算法會生成乙個64位的二進位制資料,為乙個long型。(轉換成字串後長度最多19)

我們後台返回的是json的字串,在axios內部會自動呼叫 json.parse()方法把json字串轉為js資料,就會出現進度損失。如果不進行轉換,依然當做字串來使用,就不會有問題了

當然這是json字串只有orderid的時候。

有時候,還有其他屬性。

這個時候,我們的改造一下字串。

前端處理後端傳回的 Long 型別資料精度丟失

直接拋問題,如下圖所示 檢視 network 時,響應回來的 long 型別資料和在控制台列印的資料出現的精度丟失的問題。經查閱資料,原來 js 內建有 32 位整數,而 number 型別的安全整數是 53 位。如果超過 53 位,則精度會丟失。正如現在後台傳來乙個 64 位的 long 型別整數...

微服務後端查詢超時立即返回的處理方法

功能 向使用者提供區間可查詢,使用者輸入時間區間,或者其他特定引數,後端呼叫底層平台獲取資料後再進行業務處理 分頁等封裝以便展示。問題 1.當使用者輸入時間區間過大可能會導致跨平台查詢底層資料量過大,查詢速度慢 超時 撐爆記憶體,進而造成服務卡死或宕機。2.由於資料量的多少和時間區間的長短並無之間聯...

前端接收服務端返回long型別的資料精度失真問題

原因 js是弱型別的語言,在變數宣告時不會限制資料型別,所以後端返回的什麼資料型別前端接收到之後就是什麼資料型別,js中用53位儲存資料,能精準表示的最大證書是math.pow 2,53 十進位制即 9007199254740992,後端返回的long型別的資料大於這個數,所以使用js的數字型別儲存...