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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM