Memlab 是一款 E2E 测试和分析框架,用于发现 JavaScript 内存泄漏和优化机会. Memlab 是 JavaScript 的内存测试框架.它支持定义一个测试场景(使用 Puppeteer API),教 Memlab 如何与您的单页应用程序(SPA)交互,Memlab 可以自动处理其余的内存泄漏检查: 与浏览器交互并获取 JavaScript 堆快照 分析堆快照并过滤掉内存泄漏 聚合和分组类似的内存泄漏 生成用于内存调试的保留器跟踪 安装 Memlab npm install -…
技术很多,例子很多,只好慢慢学,慢慢实践!!现在学的这本书是[JavaScript实战----JavaScript.jQuery.HTML5.Node.js实例大全] 第 3 章 用 JavaScript 实现的照片展示   构建软件设计的方法有两种:一种是把软件做得很简单以至于明显找不到缺陷:另一种是把它 做得很复杂以至于找不到明显的缺陷. ——C.A.R.Hoare,1980 年图灵奖获得者 在这个自拍自恋的时代,照片是要展示的.在前面的章节里已经讲解了事件的绑定,本章主要利用前面的知识做一…
Chorme 浏览器中的垃圾回收和内存泄漏 垃圾回收 通常情况下,垃圾数据回收分为手动回收和自动回收两种策略. 手动回收策略,何时分配内存.何时销毁内存都是由代码控制的. 自动回收策略,产生的垃圾数据是由垃圾回收器来释放的,并不需要手动通过代码来释放. JavaScript 中调用栈中的数据回收 JavaScript 引擎会通过向下移动 ESP(记录当前执行状态的指针) 来销毁该函数保存在栈中的执行上下文. JavaScript 堆中的数据回收 在 V8 中会把堆分为新生代和老生代两个区域,新生…
内存泄漏 Q:什么是内存泄漏? 字面上的意思,申请的内存没有及时回收掉,被泄漏了 Q:为什么会发生内存泄漏? 虽然前端有垃圾回收机制,但当某块无用的内存,却无法被垃圾回收机制认为是垃圾时,也就发生内存泄漏了 而垃圾回收机制通常是使用标志清除策略,简单说,也就是引用从根节点开始是否可达来判定是否是垃圾 上面是发生内存泄漏的根本原因,直接原因则是,当不同生命周期的两个东西相互通信时,一方生命到期该回收了,却被另一方还持有时,也就发生内存泄漏了 所以,下面就来讲讲,哪些场景会造成内存泄漏 哪些情况会引…
技术很多,例子很多,只好慢慢学,慢慢实践!!现在学的这本书是[JavaScript实战----JavaScript.jQuery.HTML5.Node.js实例大全] JavaScript.jQuery.HTML5.Node.js实例大全-读书笔记2   3.3 响应鼠标动作 图3-2的效果已经有了,需要鼠标来操作展示想看的照片,这就需要在相应的地方加上事件. 3.3.1 响应小照片单击动作 在3.2.3的代码里提供了显示小图列表的eg.showThumb()方法,在单击小图片时要显示大图片,这…
技术很多,例子很多,只好慢慢学,慢慢实践!!现在学的这本书是[JavaScript实战----JavaScript.jQuery.HTML5.Node.js实例大全] JavaScript.jQuery.HTML5.Node.js实例大全-读书笔记1 3.2 照片加载与定位 根据功能设计,可以先写好 HTML 结构基础,再配好 CSS 做出大致效果,最后用 JavaScript加上各种动作.首先请看 HTML 代码结构. 3.2.1 HTML 代码 CSS代码保存到 eg3.css 文件中,Ja…
Node.js中针对中文的查找和替换无效的解决方法.   //tags的值: tag,测试,帖子 var pos1 = tags.indexOf("测"); //这里返回-1 tags = tags.replace(/,/g, ","); //这里的全角逗号没有被替换成半角逗号   怎么回事那? [解决方法] 在菜单中选择将当前代码文件另存,会发现原来的编码是Chinese Simplified GB2323, 选择UTF8另存一下,再执行就正常了.…
长期以来JavaScript语言本身不提供模块化的支持, ES6中终于给出了 from, import等关键字来进行模块化的代码组织. 但CommonJS.AMD等规范已经被广为使用,如果希望你的JavaScript同时支持浏览器和Node.js, 现在只有这几种方式: 通过 browserify等工具进行转换. 提供浏览器端CommonJS框架,比如这个简易的 CommonJS 实现. 通过小心的编码来支持多种环境. browserify几乎可以保证Node.js下测试通过的代码在浏览器中仍然…
JavaScript -- 知识点回顾篇(六):js中的正则表达式 -- RegExp 对象 1. js正则表达式匹配字符之含义      查找以八进制数 规定的字符.     查找以十六进制数 规定的字符.     查找以十六进制数 规定的 Unicode 字符. 2. 匹配字符的数量及格式的控制 a+     匹配任何包含至少一个 a 的字符串.a*     匹配任何包含零个或多个 a 的字符串.a?     匹配任何包含零个或一个 a 的字符串.a{2}     匹配包含 2个 a 的序列…
JavaScript -- 知识点回顾篇(八):js中的事件Event的使用 事件通常与函数配合使用,这样就可以通过发生的事件来驱动函数执行. (1) onabort : onabort 事件会在图像加载被中断时发生. <!doctype html> <html> <head> <script type="text/javascript"> function abortImage() { alert('Error: Loading of…