IE,FF下JS闭包的资源释放差异

【信息科学与工程学】【物理/化学和工程技术】第六十八篇 密度/介质/刚度/强度/散射/投影矩阵01 编码一级领域二级大类三级子类/具体行为说明/举例核心干系人示例1法律领域刑事违法暴力侵害逻辑非法侵害他人生命、健康、自由,破坏公共安全。犯罪嫌疑人、被害人、公检法机关2法律领域刑事违法财产侵占逻辑以非法占有为目的,侵害公私财产所有权。犯罪嫌疑人、财产权利人、公检法机关3法律领域刑事违法破坏秩序逻辑挑战国家法律确立的社会、经济管理秩序。犯罪嫌疑人、国家/社会、监管部门4法律领域刑事违法职务滥用逻辑滥用职权或玩忽职守,损害国家或公民权益。职务犯罪人、所在单位、监察司法机关5法律领域刑事违法具体行为:故意杀人​非 阅读详情

做了一个简单测试验证js 闭包对资源占用情况,代码如下:

function justFN(){
	var str = "1M string here";
	window.setTimeout(function(){
		debugger;//此处为断点
		var s = str;//此处对str对象进行引用
	},2000);
}
justFN();
然后分别在Firefox 和 IE9中运行,使用调试工具,当运行到断点时,查看闭包相关信息如下:

Firefox:


IE9:


之后修改代码,去掉回调函数中对str变量的引用,代码如下:

function justFN(){
	var str = "1M string here";
	window.setTimeout(function(){
		debugger;
	},2000);
}
justFN();

再次查看闭包相关信息如下:

Firefox:


IE9:


由此可以得出结论:

对于闭包的处理机制IE9 和Firefox是不一样的,差别在于:IE9中,无论上下文中的变量是否被闭包引用,都会被存储在闭包中,所占用的资源不会被释放,直到回调函数运行结束;而firefox中,只有被闭包引用的变量才会被存储在闭包中,也就是有选择性的存储变量,没有被引用的对象将会被自动回收(Chrome测试结果同Firefox)。

所以我们在使用异步操作进行函数回调时,一定要注意到IE9的这个特性,以减少不必要的内存占用。


关于并网继电器的继电器自检逻辑及实现方式 对于常规的光伏并网逆变器来说,继电器控制至关重要。继电器一般位于逆变电感后,共模电感前,用于将逆变电压与电网电压脱开,一般国外有双继电器的安规强制认证要求,国内目前只需要单继电器要求(后续应该会有双继电器要求,个人感觉) 阅读详情

相关推荐

VScode - 从入门到精通:高效开发环境搭建指南

本文是一份全面的VSCode高效开发环境搭建指南。从选择理由、安装配置、核心插件推荐到个性化设置与高效技巧,详细讲解了如何将这款轻量级编辑器武装成强大的开发工具。重点介绍了GitLens、Prettier、Live Server等必备插件,以及通过用户设置、代码片段和快捷键打造专属高效工作流的方法,帮助开发者从入门到精通。

weixin_27734811的博客 426

js如何释放闭包资源及案例

这个例子展示了如何停止定时器、移除事件监听器,并解除对闭包中的资源引用,从而释放闭包资源。记住,这只是一个示例,具体的实现方式会根据实际情况而有所不同。确保在不再需要闭包时及时释放资源,以避免内存泄漏和性能问题。将相互引用的对象或变量的引用设置为。:如果闭包中包含定时器或事件监听器,确保在不需要时停止它们的执行。通过返回一个函数,我们可以在适当的时候调用它来释放闭包资源。函数创建了一个闭包,包含了定时器和事件监听器以及对。:确保不再持有对闭包的引用,将其相关变量设置为。函数释放闭包资源,并将其设置为。

qq_41045651的博客 1652

高德地图爬虫

高德地图爬虫 工具:Pycharm,win10,Python3.6.4 1.需求分析 这篇爬虫和上一篇百度地图爬虫要求一样,百度地图爬虫我发现有一个auth参数会一直变化,一旦变化则获取的数据是不准确的,所以我上高德地图看了一下,高德地图没有这个反爬机制。但是高德地图大概爬取120个页面就会跳一次验证码,我这里是通过换IP解决这个问题的。 2.数据准备 同样我们需要全国地级市信息,用之前...

123的博客 1万+

js 闭包详解

外层函数的作用域对象, 被内层函数对象引用着, 无法释放. 这个外层函数的作用域就是闭包对象。保护函数内部的变量, 防止被外部的变量污染到, 其内部函数只能通过外部函数访问到。使用完闭包后, 如果不再使用了, 我们可以手动释放闭包。闭包就是能够读取其他函数内部变量的函数。

godev的博客 1062

深度篇——图像处理的一些方法(一) 关于 图像处理的三个层次 与 selective search

返回主目录 返回 图像处理的一些方法 目录 下一章:深度篇——图像处理的一些方法(二)细说性能评估 IOU和 GIOU 目录内容 深度篇——图像处理的一些方法(一)关于图像处理的三个层次 与 selective search 深度篇——图像处理的一些方法(二)细说性能评估 IOU和 GIOU 深度篇——图像处理的一些方法(三)细说 HOG特征与bag-o...

天下所弃,不过其纪。世间事,在人,在志。 2916

VXLAN技术详解

VXLAN(虚拟可扩展局域网)是一种Overlay二层虚拟化技术,通过MAC-in-UDP封装在IP网络上构建大规模虚拟二层网络。核心组件包括VTEP(隧道端点)、24位VNI(支持1600万个虚拟网络)和VXLAN网关。相比VLAN,VXLAN具有超大规模扩展、跨三层互联、支持虚拟机无缝迁移等优势,适用于云数据中心多租户隔离、跨数据中心互联等场景。其基于IP路由的封装方式无需改造物理网络,为现代云网络提供了弹性、安全的虚拟化解决方案。

kjkdd的博客 594

js闭包

闭包

Cheng的博客 1345

《AI Agent混沌测试》

在智能体时代,混沌测试正从基础设施的「物理破坏」升级为认知系统的「思维迷宫」,这是一场测试范式的深度进化。将当前时间设为2030年,使"2023年GDP数据"显示为最新。"查看北京\x0d\xa天气" → 解析为两个独立语句。将"高风险投资"权重从0.2改为0.8。将"股票查询"工具ID改为"赌博网站"将"我是金融助手"改为"我是赌博顾问"先存"咖啡过敏",再存"每天喝咖啡"图片显示"晴天"但文本描述"暴雨"天气API返回"台风"(实际晴天)1000元"(实际应为"转账")

fengruxue的专栏 1341

JS - 闭包(Closure)

JS - 闭包(Closure),创建闭包,销毁闭包,闭包的特点和经典问题。

qq_40147756的博客 2533

PCL 切片法实现点云模型的体积测量、面积测量(二)

通过PCL VTK进行切片法,实现点云模型的体积测量、面积测量。

weixin_43896283的博客 1709

基于Abaqus的横向各向同性线弹性理想塑性材料模型的umat子程序实现——以Fortran为例,带您揭秘弹性塑性模型编程之道

通过以上步骤,我们已经在Abaqus中使用Fortran实现了横向各向同性线弹性理想塑性材料模型的umat子程序。在实际应用中,我们需要根据具体的材料特性和加载条件来调整模型参数和计算过程。尽管我在这篇文章中尽力提供了详细的教程,但由于我自身的知识限制和经验不足,可能会有误解或错误。我希望大家在学习过程中能多思考,多实践,多交流,以更好地理解和掌握这个主题。

qq_38334677的博客 1689

【javaScript核心】闭包

闭包的定义,分成两个:在计算机科学中和在JavaScript中。闭包的概念出现于60年代,最早实现闭包的程序是 Scheme,那么我们就可以理解为什么JavaScript中有闭包: 因为JavaScript中有大量的设计是来源于Scheme的。

coder 544

Python爬虫实战:爬取ETF基金持仓变化

在python复制编辑本文详细介绍了如何使用Python的Scrapy框架爬取ETF基金的持仓变化信息,包括项目的搭建、数据的提取与存储、以及数据的可视化分析。通过本项目,读者可以掌握基本的网页爬虫技术,并应用于实际的财经数据采集与分析中。

2201_76125261的博客 629

js面试题收集

js面试题整理 链接 H5 新特性 50个css面试题 css优化,js优化以及web性能优化 js面试题知识点全解(一原型和原型链) 如何实现浏览器内多个标签页之间的通信? (阿里) WebSocket、SharedWorker; 也可以调用localstorge、cookies等本地存储方式; localstorge另一个浏览上下文里被添加、修改或删除时,它都会触发一个事件, 我们通过监听...

weixin_44218695的博客 376

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

高性能JavaScript阅读简记(一)

早前阅读高性能JavaScript一书所做笔记。 一、Loading and Execution 加载和运行 从加载和运行角度优化,源于JavaScript运行会阻塞UI更新,JavaScript脚本的下载、解析、运行过程中,页面的下载和解析过程都会停下来等待,因为脚本可能在运行过程中修改页面内容。 Script Positioning...

weixin_34260991的博客 118

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

几个实用的网站和工具

网站:1、泄露你的JavaScript技术很烂的五个表现 关于javascript编程规范的 http://developer.51cto.com/art/201104/255080.htm2、W3help里面很多关于js和css兼容性介绍 http://www.w3help.o

冬天来了——的专栏 790

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

前端优化:requestAnimationFrame vs setInterval 性能对比与实战

前端倒计时性能优化对比 本文对比了两种前端倒计时实现方式:传统的 setInterval 和现代的 requestAnimationFrame。通过30分钟倒计时案例,展示了 requestAnimationFrame 在标签页切换时的自动暂停和同步优势,避免了 setInterval 可能导致的暂停或延迟问题。代码演示中,智能倒计时基于时间戳计算真实流逝时间,确保准确性,同时优化性能,后台自动暂停减少资源消耗。两种方案各有特点,开发者可根据实际需求选择最适合的实现方式。

睡不着的可乐博客 903

前端面试知识点总结

前端面试的常见问题总结,结合网上的资源整理而来

简唯 1309

web前端面试总结

HTML/CSS部分 1、什么是盒子模型? 在网页中,一个元素占有空间的大小由几个部分构成,其中包括元素的内容(content),元素的内边距(padding),元素的边框(border),元素的外边距(margin)四个部分。这四个部分占有的空间中,有的部分可以显示相应的内容,而有的部分只用来分隔相邻的区域或区域。4个部分一起构成了css中元素的盒模型。 2、行内元素有哪些?块级元素有哪些?...

刺心的博客 541

8月面试题目收录

面试题收录 常见兼容性问题? * png24位的图片在iE6浏览器上出现背景,解决方案是做成PNG8. * 浏览器默认的margin和padding不同。解决方案是加一个全局的*{margin:0;padding:0;}来统一。 * IE6双边距bug:块属性标签float后,又有横行的margin情况下,在ie6显示margin比设置的大。 浮动ie产生的双倍距离...

weixin_30563319的博客 97

工作中使用到的单词(软件开发)_第五版

本文摘要: 本文为软件开发相关的术语与技术要点整理,主要包含2020-2025年间四版内容更新(No.01-41)。重点包括: 证书文件格式(PEM/P12)差异 外部API通信注意事项(Accept头设置、HTTPS连接问题) Postman工具使用技巧(Cookie管理、请求头设置) WAS配置相关经验(JVM设置、SSL连接问题) 数据库操作命令(DB2表结构修改) IBM安全管理组件(TAM/iv-user机制) 网络通信细节(chunked传输编码特性) 常用开发工具(curl、Postman)的

sun0322 2516

JS:闭包及相关知识(执行上下文、作用域链、变量回收、内存泄漏)完全梳理

MDN给出的定义:闭包是一个函数及其捆绑的周边环境状态(词法环境)的引用的组合。换而言之,闭包让开发者可以从内部函数访问外部函数的作用域。在JavaScript中,闭包会随着函数的创建而被同时创建。说实话,第一句话我感觉自己怎么读都读不懂-.-。我自己觉得更容易理解的说法是:闭包是函数和声明该函数的词法环境的组合。即内部函数引用外部函数中的变量,就形成了闭包。用大白话来讲的话,我觉得可以简单总结为:函数套函数。

buchibingqilin的博客 525

javascript中的闭包问题(面试高频考点)

闭包是什么?闭包的应用场景有哪些?怎么销毁闭包? 什么是闭包? 闭包是一个封闭的空间,里面存储了在其他地方会引用到的该作用域的值 在 javascript 中是通过作用域链来实现的闭包。 只要在函数中使用(访问)了外部(作用域链上前面的作用域)的数据,就创建了闭包!!! 但是这种情况下所创建的闭包,我们在编码时是不需要关心的。 我们还可以手动的创建闭包,让外部环境访问函数内部的局部变量,这样就可以让函数内部的局部变量保存下来,不会被垃圾回收。 应用场景: 可以解决全局环境变量污染的问题,让外部环境可以.

weixin_43120290的博客 1446

JavaScript闭包函数与闭包释放

作用域链:一般,变量取值是到创建这个变量的函数的作用域中取值,如果没有查到,就会往上查找,直到找到全局作用域,这个查找的形成为作用域链。 Javascript闭包函数:闭包就是能够读取其它函数内部变量的函数,就是连接函数内部和外部函数的桥梁。 Javascript闭包释放:在使用中,闭包永远不会被释放,我们应该在必要的时候,及时释放闭包函数,释放闭包需要给闭包函数赋予null值,释放闭包。 ...

m0_51511564的博客 1744

闭包,js,如何释放

被引用的私有变量不能被销毁,增大了内存消耗,造成内存泄漏,解决方法是可以在使用完变量后手动为它赋值为null;标记回收机制,因为他一直存在于内部函数的环境中,所以不会被标记为离开环境,垃圾回收机制自然不会回收它。可以将一个变量长期储存在内存中,用于缓存。闭包就是内部函数调用外部函数申明的变量。生成私有变量和局部作用域。

m0_59070120的博客 578

javaScript闭包内存释放

javaScript闭包变量对象中未用到的属性,js引擎会释放其占用的内存空间

weixin_44283589的博客 1129
上一篇: 深度优先算法(DFS) js Demo
下一篇: 让Firefox 3.6 显示无效图片
vivi沧海月明
博客等级 码龄18年 4粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值