1. 程式人生 > 實用技巧 >axios 瀏覽器記憶體洩露問題解決

axios 瀏覽器記憶體洩露問題解決

現象

業務頁面,頻繁切換下一條,記憶體飆漲,導致卡頓,之前懷疑是音訊播放器的鍋,修改後問題依舊,於是排查網路請求。

到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
您的支援是對博主最大的鼓勵,感謝您的認真閱讀。
本文版權歸作者所有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連線,否則保留追究法律責任的權利。