zoukankan      html  css  js  c++  java
  • 前端内存溢出问题

    内存溢出无非就是不能给垃圾回收机制回收,这个前提下是这部分内容已经是你不在使用的了。

    网上有常见的四种内存溢出的情况。

    传送门:链接

    而使用jq的话

    1、不要使用html方法删除DOM节点,因为这样其实只是删除了页面上的,内存里的还没有删除,建议使用:empty和remove方法

    2、定时器不使用要清除,clearInterval,clearTimeout

    3、变量声明不要忘了,因为这样会容易造成全局污染,还有内存溢出,虽然消耗少,但积少成多,使用严格模式杜绝"use strict"

    4、闭包问题,这个常见问题,因为闭包的变量被引用是无法被垃圾回收机制回收的,引用既在函数链里被使用

    5、ajax也可能出现这样的问题,如果不断地申请ajax请求,那么ajax就会不断的创建XMLHttpRequest对象,有些jq版本存在这个问题

    6、事件不再使用记得清除,使用off方法,不是事件也会缓存下来,消耗内存

    其实内存溢出就是不再使用的东西没有清除,所以还有很多种可能造成,比如缓存,数组,对象之类的,保存在内存中,如果不及时清除

    都会造成这样的问题,而出现浏览器卡顿,缓慢,崩溃,无相应之类的。

    所以很多插件都有一套自己清除方法,就是为了清除已经不被使用的部分。

    chrome浏览器有个工具可以使用一样,上面的传送门就有介绍,就是TimeLine和profiles这两个。可以帮助找问题所在。

    一般情况是不会出现这样的问题的,但如果是一些一直开启的浏览器的屏幕,那么这个就是问题了,因为积少成多,架不住时间的考验,

    慢慢的就会出现浏览器的问题。

  • 相关阅读:
    Tire树的理解和应用
    C语言:socket简单模拟http请求
    C语言:关于socket的基础知识点
    php中的ip2long和long2ip的理解
    理解php中的pack/unpack/ord/chr
    zlog学习笔记(mdc)
    计算机工作的进行
    期末总结
    第十四周学习报告
    第十三周学习报告
  • 原文地址:https://www.cnblogs.com/zhangzhicheng/p/7756494.html
Copyright © 2011-2022 走看看