Chrome extensions 学习总结(2)

1. 五种类型的JS对比 Chrome插件的JS主要可以分为这5类:injected script、content-script、popup js、background js和devtools js, 1.1 权限对比 JS种类 可访问的API DOM访问情况 JS访问情况 直接跨域 injected script 和普通JS无任何差别,不能访问任何扩展API 可以 可以 不可以 »

Chrome extensions 学习总结(1)

1. 简介 Chrome插件是一个用Web技术开发、用来增强浏览器功能的软件,Chrome浏览器扩展开发算是相当简单的,基本只要掌握HTML+CSS+Javascript,即可快速开发一个属于你的Chrome插件!它其实就是一个由HTML、CSS、JS、图片等资源组成的一个.crx后缀的压缩包. 2. 学习Chrome插件开发有什么意义? 增强浏览器功能,轻松实现属于自己的“定制版”浏览器,等等。 Chrome插件提供了很多实用API供我们使用,包括但不限于: 书签控制; 下载控制; 窗口控制; »

关于node.js-内存控制-垃圾回收学习总结

V8内存限制 Node与其他语言不同的一个地方,就是其限制了JavaScript所能使用的内存(64位为1.4GB,32位为0.7GB),这也就意味着将无法直接操作一些大内存对象。这很令人匪夷所思,因为很少有其他语言会限制内存的使用。 原因? V8之所以限制了内存的大小,表面上的原因是V8最初是作为浏览器的JavaScript引擎而设计,不太可能遇到大量内存的场景。 而深层次的原因则是由于V8的垃圾回收机制的限制。由于V8需要保证JavaScript应用逻辑与垃圾回收器所看到的不一样,V8在执行垃圾回收时会阻塞JavaScript应用逻辑,直到垃圾回收结束再重新执行JavaScript应用逻辑,这种行为被称为“全停顿”(stop-the-world)。 若V8的堆内存为1.5GB,V8做一次小的垃圾回收需要50ms以上,做一次非增量式的垃圾回收甚至要1秒以上。这样浏览器将在1s内失去对用户的响应, »

DllPlugin提升webpack打包速度

DllPlugin和DllReferencePlugin提供分离包的方式可以大大提高构建时间性能。主要思想在于,将一些不做修改的依赖文件,提前打包,这样我们开发代码发布的时候就不需要再对这部分代码进行打包。从而节省了打包时间。 ​ DllPlugin 这个插件使用一个单独webpack配置创建一个dll-only-bundle文件。并且它还创建一个manifest.json。 DllReferencePlugin使用该json文件来做映射依赖性。(这个文件会告诉我们的哪些文件已经提取打包好了)。 context (可选): manifest文件中请求的上下文,默认为该webpack文件上下文。 name: 公开的dll函数的名称,和output. library保持一致即可。 path: manifest.json生成的文件夹及名字 e.g.: new »

Linux 基本的bash shell命令

文件和目录列表 ls -F 区分文件和目录,目录名称后面带了(/) ,会在可执行文件后面带上(*),类似.publish.sh的文件。 ls -a 显示所有文件目录,包括隐藏。 ls -R 递归选项。列出了当前目录下包含的子目录中的文件。 ls -F -R ----> ls -FR ls -l »