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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章