axios 瀏覽器記憶體洩露問題解決
阿新 • • 發佈:2020-11-04
現象
業務頁面,頻繁切換下一條,記憶體飆漲,導致卡頓,之前懷疑是音訊播放器的鍋,修改後問題依舊,於是排查網路請求。
到axios issues搜尋,發現memory leaks
帖子不少,典型的在這裡Axios doesn't address memory leaks?:
這裡提到0.19.2
版本沒有問題,但是升級到0.20.0
後,出現問題。
兩種解決方案:
- 降級到
0.19.2
- 在新版本里,不要直接使用axios,而是先建立一個instance
const axios = axios.create({...}) // instead of axios.get(), post(), put() etc.
排查業務程式碼,發現每次請求都是建立一個 instance,拋開版本問題,每次建立例項肯定會存在記憶體問題,最好還是先建立個single instance,後面複用:
import axios, { AxiosRequestConfig, AxiosResponse } from 'axios' // 建立一個例項 const axiosInstance = axios.create() save(parameters: { 'data': ResultSaveParam, $queryParameters?: any, $domain?: string }): Promise<AxiosResponse<ApiResult>> { .... // 使用axiosInstance return axiosInstance.request(config) }
作者:Jadepeng
出處:jqpeng的技術記事本--http://www.cnblogs.com/xiaoqi
您的支援是對博主最大的鼓勵,感謝您的認真閱讀。
本文版權歸作者所有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連線,否則保留追究法律責任的權利。