当前位置: 首页 > news >正文

亚马逊网站类型企业文化包括哪些方面内容

亚马逊网站类型,企业文化包括哪些方面内容,淘宝哪些做网站关键词排名的有用吗,装饰公司网站制作目录 一、什么是垃圾回收 二.垃圾回收机制原理 三、垃圾回收方法 3.1 引用计数 3.2 标记清除 内存常见内存泄露以及解决方法 4.1 全局变量#xff1a; 4.2 定时器和回调函数 4.3 闭包 4.4 没有清理DOM元素引用#xff1a; 一、什么是垃圾回收 垃圾回收是一种自… 目录 一、什么是垃圾回收 二.垃圾回收机制原理 三、垃圾回收方法 3.1 引用计数 3.2 标记清除 内存常见内存泄露以及解决方法 4.1 全局变量 4.2 定时器和回调函数  4.3 闭包  4.4 没有清理DOM元素引用  一、什么是垃圾回收 垃圾回收是一种自动的内存管理机制。当计算机上的动态内存不再需要时就应该予以释放以让出内存。直白点讲就是程序是运行在内存里的当声明一个变量、定义一个函数时都会占用内存。内存的容量是有限的如果变量、函数等只有产生没有消亡的过程那迟早内存有被完全占用的时候。这个时候不仅自己的程序无法正常运行连其他程序也会受到影响。好比生物只有出生没有死亡地球总有被撑爆的一天。所以在计算机中我们需要垃圾回收。需要注意的是定义中的“自动”的意思是语言可以帮助我们回收内存垃圾但并不代表我们不用关心内存管理如果操作不当JavaScript 中依旧会出现内存溢出的情况。 二.垃圾回收机制原理 垃圾回收基于两个原理 1、考虑某个变量或对象在未来的程序运行中将不会被访问 2、向这些对象要求归还内存 而这两个原理中最主要的也是最艰难的部分就是找到“所分配的内存确实已经不再需要了”。 三、垃圾回收方法 现在各大浏览器通常用采用的垃圾回收有两种方法标记清除、引用计数。 3.1 引用计数 这是最初级的垃圾回收算法老牌浏览器使用IE。引用计数的策略是跟踪记录每个值被使用的次数。当声明了一个变量并将一个引用类型赋值给该变量时这个值得引用次数就加一如果该变量的值变成了另一个则这个值得引用次数就减一当这个值的引用次数为0的时候说明没有变量在使用这个值无法访问。由此可以将其占用的空间回收这些垃圾回收器就会在运行时清理掉引用次数为0的值占用的空间但这种方法容易引起内存泄漏因为这种方式没有解决循环引用的问题所以不建议使用 function fun4(){ var obj {}//引用类型变量c的引用计数为0 var o obj; //obj被o引用obj的引用计数为1 var m obj; //obj被m引用obj的引用计数为2 o {} //o不再引用objobj的引用计数减为1 m null //m不再引用objobj的引用计数减为0 } 但是引用计数存在一些问题循环引用 function fun5(){var f {};var g {};f.userName g;g.userName f;//由于f和g互相引用计数永远不可能为0} 3.2 标记清除 这是javascript中最常用的垃圾回收方式。当变量进入执行环境是就标记这个变量为“进入环境”。从逻辑上讲永远不能释放进入环境的变量所占用的内存因为只要执行流进入相应的环境就可能会用到他们。当变量离开环境时则将其标记为“离开环境”。 垃圾收集器在运行的时候会给存储在内存中的所有变量都加上标记。然后它会去掉环境中的变量以及被环境中的变量引用的标记。而在此之后再被加上标记的变量将被视为准备删除的变量原因是环境中的变量已经无法访问到这些变量了。最后。垃圾收集器完成内存清除工作销毁那些带标记的值并回收他们所占用的内存空间。 function fun3(){ var a 1; var b 2; //函数执行时ab分别被标记进入环境 } fun3() 函数执行结束ab被标记 离开环境 被回收 但是也要注意 function fun1(){var obj {} } function fun2(){var obj {}return obj; } var a fun1(); var b fun2(); fun1 执行时为 obj 分配了一块内存但是随着函数执行结束obj占用的空间也就被释放了 fun2 执行时也为 obj 分配了内存但是由于 obj最终被返回赋值给了 b 导致其依然被使用所以 fun2 中的 obj 占用的内存不会被释放 内存常见内存泄露以及解决方法 4.1 全局变量 function foo() {this.bar2 默认绑定this指向全局 // 全局变量 window.bar2bar 全局变量; // 没有声明变量 实际上是全局变量window.bar } foo();解决方法在函数内使用严格模式》严格模式禁止this关键字指向全局对象function foo() {use strict; this.bar2 严格模式下this指向undefined; bar 报错; } foo(); 4.2 定时器和回调函数  当不需要setInterval或者setTimeout时定时器没有被clear定时器的回调 函数以及内部依赖的变量都不能被回收造成内存泄漏。var someResource getData(); setInterval(function() {var node document.getElementById(Node);if(node) {node.innerHTML JSON.stringify(someResource));// 定时器也没有清除}// node、someResource 存储了大量数据 无法回收 }, 1000);解决方法 在定时器完成工作的时候手动清除定时器。 4.3 闭包  闭包可以维持函数内局部变量使其得不到释放造成内存泄漏。 function bindEvent() {var obj document.createElement(XXX);var unused function () {console.log(obj,闭包内引用obj obj不会被释放);};// obj null; } 解决方法手动解除引用obj null。 4.4 没有清理DOM元素引用  var refA document.getElementById(refA); document.body.removeChild(refA); // dom删除了 console.log(refA, refA); // 但是还存在引用 能console出整个div 没有被回收解决办法refA null;
http://www.huolong8.cn/news/125335/

相关文章:

  • 平面设计师常用的素材网站做编程的 网站有哪些
  • 三网合一网站做网络推广的多少钱一个月
  • 中国平面设计网站济南住建网站
  • 一般购物网站项目免费flash网站模板
  • 学校网站建设调查报告做ppt赚钱的网站
  • 中山网站建设文化教程智慧团建网站登录入口官网
  • 无锡网站建设唯唯网络正规的淘宝代运营公司
  • 如何 html5 网站模板张家口网站建设费用
  • 深圳建筑室内设计网站网站收索流量
  • 在县城做商城网站广告公司电话号码
  • 做违法网站判刑吗怎么建立一个博客网站
  • 上海好的网站设计公司有哪些手游cpa推广平台
  • 哪里找网站开发团队wordpress主题的文件在哪个文件夹
  • 没有公司怎么做网站东莞住房与城乡建设网站
  • 搜索网站的设计与建设wordpress最多多少用户
  • 精神文明地方联盟网站建设网站的版式
  • 专业提供网站建设服务包括哪些网站宣传图
  • 建设银行 网站上海网站代优化
  • jsp企业网站源码c 微网站开发
  • 怎么看国外设计网站h5怎么设计网页
  • 江苏住房建设厅主办网站app制作工具下载
  • 做一个信息发布网站要多少钱设计之家效果图
  • 网站备案填写要求吗天津中小企业建设网站
  • 网站开发工作怎样深圳html5网站建设价格
  • 做网站编辑的发展方向晋升民非企业网站建设费怎么记账
  • 做php网站需要什么软件开发辽阳网站建设
  • 企业管理网站模板pc网站制作
  • 律师事务所手机网站免费自己制作网站方法
  • 怎么做一元抢购网站苏州做网站的公司排名
  • 服务器用来做网站和数据库免费招商信息发布平台