NodeJS 事件循环 (第三章) 翻译稿

原文地址: https://jsblog.insiderattack.net/promises-next-ticks-and-immediates-nodejs-event-loop-part-3-9226cbe7a6aa

欢迎回到事件循环系列文章,在第一章中,我们对 NodeJs 的事件循环以及事件循环的各个阶段有了一个总体的了解。在第二章中,我们学习了 timer、immediates 队列在事件循环中的特性和运作机制。在本章中,我们将要研讨事件循环机制是如何处理 resolved/rejected promise,以及 next tick 事件(回调函数)。若是你对 promise 还不熟悉,建议可以先学一下 promise 的语法。由于下文中的事件和回调函数是等价的,所以下文中提到的事件就是回调函数。

阅读更多

NodeJS 事件循环 (第二章) 翻译稿

原文地址: https://jsblog.insiderattack.net/timers-immediates-and-process-nexttick-nodejs-event-loop-part-2-2c53fd511bb3
在上一篇文章中,我们对 NodeJs 的事件循环机制已经有了一些大体的了解。在本章中,我们来结合例子,对前文中提到过的 timers, immediates 和 next tick queue 队列 ( 由 process.nextTick 产生 ) 做出详细的分析。

阅读更多

NodeJS 事件循环 (第一章) 翻译稿

原文地址: https://jsblog.insiderattack.net/event-loop-and-the-big-picture-nodejs-event-loop-part-1-1cb67a182810

I/O 操作的独特性使得 NodeJS 从一众编程语言中脱颖而出。我们经常可以听到 NodeJs 是一门构建在 Google V8 JavaScript 引擎之上,异步,无阻塞,基于事件循环的编程平台。
那么上述的特征都意味着什么呢?事件循环是回答这一切问题的关键所在。在下面的文章中,我会详细介绍什么是事件循环,事件循环是如何影响我们的 web 应用,我们该如何最大程度地利用好事件循环这个特性。下面我将用一系列的文章来介绍该内容。在第一章中,我们将探讨 NodeJs 的工作原理,处理 I/O 的方式以及 NodeJs 跨平台工作的原理。

阅读更多

使用 Image Decode API 优化前端滚屏性能

前言:图片的解码过程会造成动画卡顿,给我们在使用定时器或是 RAF 制作动画时带来不便。那么我们是否可以先不插入图片,等到图片解码完成后再往 DOM 树里插入图片参与绘制? Image Decode API 使我们的想法成为现实。

阅读更多

谈谈颜色混合模式 mix-blend-mode 和 background-blend-mode

前言:CSS3 中新增了一个有意思的属性 mix-blend-mode,描述了元素的内容应该与元素的直系父元素的内容,元素的背景如何混合,或是多个元素重叠部分的颜色如何混合,熟悉 PhotoShop 的人应该对混合模式不陌生,得益于技术的进步,我们在网页中也可以使用这个效果了~

阅读更多

使用 drop-shadow 任意改变 png 默认颜色

前言:工作的时候,对于纯色 ico,若是需要改变 ico 颜色,我们不得不替换图片,很麻烦。但是使用 drop-shadow 属性,我们就可以任意改变 png 颜色,对于维护方面是一个很大的利好

阅读更多

Passive Event Listeners 优化移动端滑动性能

前言: Passive Event Listeners 可以用于提升移动端滑动的流畅度,也可以同于解决新版 chrome 阻止 touchmove 默认事件时的 treated as passive 错误,下面让我们来看一下 Passive Event Listeners 的用法

阅读更多

CSS 之多行文本溢出显示省略号

前言:我们通常使用 text-overflow:ellipsis 来对单行文本的溢出进行处理,但是面对多行文本时,这种方式并不奏效,下面我们来介绍一下针对多行文本溢出的解决办法

阅读更多

nodejs 之 Cluster 模块 (一)

前言:nodejs 作为一个单线程的执行引擎,无法发挥多核处理器应有的性能。好在 0.6.0 之后的 nodejs 内置了 cluster 集群模块帮助使得 nodejs 可以充分利用处理器的计算性能

阅读更多

nodejs 之 Crypto 加密模块

前言 : nodejs 为我们提供了原生的 Crypto,加密模块,其主要利用 openssl 库来提供通用的加密和 hash 算法,nodejs 使用 C++ 实现这些算法后,通过该模块提供给我们调用,相比于 js 算法,执行效率大为提升。

阅读更多

koa2 集成 log4js

前言:之前介绍了 log4js 的基本配置,这一章,我们尝试让其与 koa2 框架相结合,真正在实际的项目中发挥效用

阅读更多

log4js 的基本配置

前言: 前言:log4js 作为 nodejs 中必不可少的日志处理模块,相比其他的日志模块例如 debug 更有优势。然而官方文档的说明不甚明了,并且随着版本的升级,网上的各种配置方式在新版本中有些也已经废弃,故而重新梳理

阅读更多

前端免费 CDN 公共库整理

前言: 2018-5-20 日晚开始,bootcdn 禁止了所有 cc 域名的访问,本博客也因此产生故障。故此整理一下其他公共 CDN 库,有备无患

阅读更多

Ubuntu 编译安装 Redis (转)

前言: 虽然我们可以通过,类似 yum, apt-get 等包管理工具安装 redis,但是仍有一些弊端,这一篇我们介绍一下,如何通过编译源码的方式来安装 redis(本文非原创,转自 https://fqk.io/redis-installation,非特意标注的皆为原创)

阅读更多

Ubuntu 编译安装 nginx

前言:nginx 作为一个高性能的HTTP和反向代理服务器,在生产环境中应用甚广。本文介绍一下,在 ubuntu 环境下,如何通过源码编译安装 nginx (可定制性更高,也可以扩展第三方模块)

阅读更多