电脑无法将请求数据放入内存-(电脑无法将请求数据放入内存卡)
一 內存溢出
什么是內存溢出內存溢出(Out Of Memory,簡稱OOM)是指應用系統中存在無法回收的內存或使用的內存過多,最終使得程序運行要用到的內存大于能提供的最大內存。此時程序就運行不了,系統會提示內存溢出,有時候會自動關閉軟件,重啟電腦或者軟件后釋放掉一部分內存又可以正常運行該軟件,而由系統配置、數據流、用戶代碼等原因而導致的內存溢出錯誤,即使用戶重新執行任務依然無法避免。比方說連續請求數據很多次,會快速占滿內存造成內存溢出,瀏覽器卡死。
二 內存泄露
什么是內存泄露內存泄漏(Memory Leak)是指程序中已動態分配的堆內存由于某種原因程序未釋放或無法釋放,造成系統內存的浪費,導致程序運行速度減慢甚至系統崩潰等嚴重后果。
內存泄露的原因意外的全局變量:由于 js 對未聲明變量的處理方式是在全局對象上創建該變量的引用。如果在瀏覽器中,全局對象就是 window 對象。變量在窗口關閉或重新刷新頁面之前都不會被釋放,如果未聲明的變量緩存大量的數據,就會導致內存泄露。==》》解決方法:盡量減少創建全局變量。
<template> <div id="home">這里是首頁</div></template><script> export default { mounted() { window.test = { // 此處在全局window對象中引用了本頁面的dom對象 name: 'home', node: document.getElementById('home'), } }, }</script>解決方法:在頁面卸載的時候順便處理掉該引用destroyed () { window.test = null // 頁面卸載的時候解除引用 }
監聽在 window/body 等事件沒有解綁:特別注意 window.addEventListener 之類的監聽
<template> <div id="home">這里是首頁</div></template><script>export default { mounted () { window.addEventListener('resize', this.func) // window對象引用了home頁面的方法 }}</script>解決方法:在頁面銷毀的時候,順便解除引用,釋放內存beforeDestroy () { window.removeEventListener('resize', this.func)}
閉包引起的內存泄漏:由于閉包可以讀取函數內部的變量,然后讓這些變量始終保存在內存中。如果在使用結束后沒有將局部變量清除,就可能導致內存泄露
被遺忘的定時器或者回調:定時器中有 dom 的引用,即使 dom 刪除了,但是定時器還在,所以內存中還是有這個 dom。手動刪除定時器和 dom,removeEventListener 移除事件監聽
總結
以上是生活随笔為你收集整理的电脑无法将请求数据放入内存-(电脑无法将请求数据放入内存卡)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安装系统u盘镜像文件什么-(镜像文件在u
- 下一篇: win10引导修复uefi-()