2016年3月

关于 js 的 event loop 的再研究

事件起因源于对我之前写的一个小工具的再优化,工具遇到的场景大概是这样的: 工具需要在用户点击完按钮后做大量的循环操作(这里暂时没有算法层的优化),大概有 6 万次,然后与此同时,界面上还需要显示出当前循环进行的程度,百分比。大概是这样的: setInterval(function() { // trigger progress... }, 16); for(var i=0; i<60000; i++) { // do something... } 这里在之前就遇到一个问题,就是当 js 去在一个函数里进行循环操作时,js 会被卡住,因为是一个同步过程,所以界面的更新事件会在循环进行完以后再触发执行,这当然不是我们想要的。然后后来,我就把它变成了下面这种递归模式: function loop() { // do something ... setTimeout(loop, 0); } 这样的话,就把每次循环变成了一个异步事件,等上次循环执行完后,再把下次循环的事件挂到事件队列上,等待下次 ...

修复 npm 权限问题(翻译)

好吧,没啥,就是他们最近在迁移服务器的时候,安装 npm 包的时候又遇到 Please try running this command again as root/Administrator. 这个问题了,然后就准备把这个问题记一下,方便为遇到同样问题的同学参考吧 原文地址: https://docs.npmjs.com/getting-started/fixing-npm-permissions 当你安装一个包到全局的时候可能会遇到一个 EACCES 错误,这是因为你没有 npm 存储全局包的目录的写权限。 你可以通过两种途径来修复这个问题: 修改 npm 默认目录的权限 修改 npm 默认目录到其他目录 在进行一下操作之前,请先备份一下你的电脑 方法1:修改 npm 默认目录的权限 找到 npm 默认目录的路径 npm config get prefix 对于大多数的系统来说,应该是 /usr/local 注意: 如果你显示的路径是只是 /usr,请使用 方法2 修改 npm 目录所有者为当前用户 sudo chown ...