現象
業務頁面,頻繁切換下一條,內存飆漲,導致卡頓,之前懷疑是音頻播放器的鍋,修改後問題依舊,於是排查網絡請求。
到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
您的支持是對博主最大的鼓勵,感謝您的認真閱讀。
本文版權歸作者所有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。